[libvirt] [PATCH] usb: fix crash when failing to attach a second usb device

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

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

On 05/11/2012 04:19 PM, Michal Privoznik wrote:
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
Thanks for the review. Pushed. Guannan Ren
participants (2)
-
Guannan Ren
-
Michal Privoznik