]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
vbox_network: fix possible memory leak in vboxNetworkDefineCreateXML()
authorKristina Hanicova <khanicov@redhat.com>
Mon, 23 Aug 2021 14:33:41 +0000 (16:33 +0200)
committerJán Tomko <jtomko@redhat.com>
Mon, 23 Aug 2021 14:48:50 +0000 (16:48 +0200)
virNetworkDef was not freed if the function failed in the first
two ifs, causing a possible memory leak.

Signed-off-by: Kristina Hanicova <khanicov@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
src/vbox/vbox_network.c

index afd2acbb0369c21f901b72243077ec669cafad70..d97f571d1b3a4602264c1df9e2b0ec9b09c8bb01 100644 (file)
@@ -375,7 +375,7 @@ vboxNetworkDefineCreateXML(virConnectPtr conn, const char *xml, bool start)
     PRUnichar *networkNameUtf16 = NULL;
     char *networkNameUtf8 = NULL;
     IHostNetworkInterface *networkInterface = NULL;
-    virNetworkDef *def = virNetworkDefParseString(xml, NULL);
+    virNetworkDef *def = NULL;
     virNetworkIPDef *ipdef = NULL;
     unsigned char uuid[VIR_UUID_BUFLEN];
     vboxIID vboxnetiid;
@@ -394,7 +394,7 @@ vboxNetworkDefineCreateXML(virConnectPtr conn, const char *xml, bool start)
 
     VBOX_IID_INITIALIZE(&vboxnetiid);
 
-    if ((!def) ||
+    if (!(def = virNetworkDefParseString(xml, NULL)) ||
         (def->forward.type != VIR_NETWORK_FORWARD_NONE) ||
         (def->nips == 0 || !def->ips))
         goto cleanup;