[libvirt] [For 1.3.3 1/2] libxl: fix attaching net device of type hostdev

Jim Fehlig jfehlig at suse.com
Wed Mar 30 22:36:02 UTC 2016


Chunyan sent a correct patch to fix a resource leak on error in
libxlDomainAttachNetDevice

https://www.redhat.com/archives/libvir-list/2016-March/msg00924.html

I made what was thought to be an improvement and pushed the patch as
commit e6336442. As it turns out, my change broke adding net devices
that are actually hostdevs to the list of nets in virDomainDef. This
patch changes e6336442 to resemble Chunyan's original, correct
patch.

Signed-off-by: Jim Fehlig <jfehlig at suse.com>
---
 src/libxl/libxl_driver.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c
index 5103495..9955cc7 100644
--- a/src/libxl/libxl_driver.c
+++ b/src/libxl/libxl_driver.c
@@ -3174,12 +3174,13 @@ libxlDomainAttachNetDevice(libxlDriverPrivatePtr driver,
         goto cleanup;
     }
 
-    vm->def->nets[vm->def->nnets++] = net;
     ret = 0;
 
  cleanup:
     libxl_device_nic_dispose(&nic);
-    if (ret) {
+    if (!ret) {
+        vm->def->nets[vm->def->nnets++] = net;
+    } else {
         virDomainNetRemoveHostdev(vm->def, net);
         networkReleaseActualDevice(vm->def, net);
     }
-- 
2.6.1




More information about the libvir-list mailing list