[libvirt] [PATCH] util: eliminate crash in virNetDevMacVLanCreateWithVPortProfile

From: root <root@vlap.laine.org> Commit 723d5c (added after the release of 0.9.10) adds a NetlinkEventClient for each interface sent to virNetDevMacVLanCreateWithVPortProfile. This should only be done if the interface actually *has* a virtPortProfile, otherwise the event handler would be a NOP. The bigger problem is that part of the setup to create the NetlinkEventClient is to do a memcpy of virtPortProfile - if it's NULL, this triggers a segv. This patch just qualifies the code that adds the client - if virtPortProfile is NULL, it's skipped. --- src/util/virnetdevmacvlan.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/src/util/virnetdevmacvlan.c b/src/util/virnetdevmacvlan.c index 57fc69e..e18b149 100644 --- a/src/util/virnetdevmacvlan.c +++ b/src/util/virnetdevmacvlan.c @@ -915,7 +915,7 @@ create_name: goto disassociate_exit; } - if (virNetlinkEventServiceIsRunning()) { + if (virtPortProfile && virNetlinkEventServiceIsRunning()) { if (VIR_ALLOC(calld) < 0) goto memory_error; if ((calld->cr_ifname = strdup(cr_ifname)) == NULL) -- 1.7.7.6

On 05.03.2012 20:42, Laine Stump wrote:
From: root <root@vlap.laine.org>
Commit 723d5c (added after the release of 0.9.10) adds a NetlinkEventClient for each interface sent to virNetDevMacVLanCreateWithVPortProfile. This should only be done if the interface actually *has* a virtPortProfile, otherwise the event handler would be a NOP. The bigger problem is that part of the setup to create the NetlinkEventClient is to do a memcpy of virtPortProfile - if it's NULL, this triggers a segv.
This patch just qualifies the code that adds the client - if virtPortProfile is NULL, it's skipped. --- src/util/virnetdevmacvlan.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
ACK
participants (2)
-
Laine Stump
-
Michal Privoznik