From b2c7b9ee0e6f2203984035668c066be37f3a256a Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Mon, 26 Mar 2012 16:33:58 +0200 Subject: [PATCH] qemu: Don't leak temporary list of USB devices and add debug message when adding USB device to the list of active devices. --- src/qemu/qemu_hostdev.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/qemu/qemu_hostdev.c b/src/qemu/qemu_hostdev.c index 329e3fc054..d4d746162c 100644 --- a/src/qemu/qemu_hostdev.c +++ b/src/qemu/qemu_hostdev.c @@ -559,10 +559,7 @@ qemuPrepareHostdevUSBDevices(struct qemud_driver *driver, hostdev->source.subsys.u.usb.product); if (!usb) - return -1; - - hostdev->source.subsys.u.usb.bus = usbDeviceGetBus(usb); - hostdev->source.subsys.u.usb.device = usbDeviceGetDevno(usb); + goto cleanup; if ((tmp = usbDeviceListFind(driver->activeUsbHostdevs, usb))) { const char *other_name = usbDeviceGetUsedBy(tmp); @@ -579,6 +576,9 @@ qemuPrepareHostdevUSBDevices(struct qemud_driver *driver, goto cleanup; } + hostdev->source.subsys.u.usb.bus = usbDeviceGetBus(usb); + hostdev->source.subsys.u.usb.device = usbDeviceGetDevno(usb); + if (usbDeviceListAdd(list, usb) < 0) { usbFreeDevice(usb); goto cleanup; @@ -594,6 +594,9 @@ qemuPrepareHostdevUSBDevices(struct qemud_driver *driver, for (i = 0; i < usbDeviceListCount(list); i++) { tmp = usbDeviceListGet(list, i); usbDeviceSetUsedBy(tmp, name); + + VIR_DEBUG("Adding %03d.%03d dom=%s to activeUsbHostdevs", + usbDeviceGetBus(tmp), usbDeviceGetDevno(tmp), name); if (usbDeviceListAdd(driver->activeUsbHostdevs, tmp) < 0) { usbFreeDevice(tmp); goto inactivedevs; -- GitLab