On 11.05.2012 08:46, Guannan Ren wrote:
when failing to attach another usb device to a domain for some
reason
which has one use device attached before, the libvirtd crashed.
The crash is caused by null-pointer dereference error in invoking
usbDeviceListSteal passed in NULL value usb variable.
commit 05abd1507d66aabb6cad12eeafeb4c4d1911c585 introduces the bug.
---
src/qemu/qemu_hotplug.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index ad31eba..9b60816 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -1213,7 +1213,8 @@ error:
cleanup:
usbDeviceListFree(list);
- usbDeviceListSteal(driver->activeUsbHostdevs, usb);
+ if (usb)
+ usbDeviceListSteal(driver->activeUsbHostdevs, usb);
return -1;
}
ACK
Michal