From: Jim Fehlig Date: Wed, 30 Mar 2016 20:57:29 +0000 (-0600) Subject: libxl: fix attaching net device of type hostdev X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=95d3c738713f455f51edcb9b89043a1991795be3;p=libvirt.git libxl: fix attaching net device of type hostdev 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. --- diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index 510349595f..9955cc7bbb 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); }