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); }