At 2011-3-23 20:25, Eric Blake Write:
On 03/22/2011 08:02 PM, Wen Congyang wrote:
> Steps to reproduce this bug:
> # cat usb.xml
> <hostdev mode='subsystem' type='usb'>
> <source>
> <address bus='0x001' device='0x003'/>
> </source>
> </hostdev>
> # virsh attach-device vm1 usb.xml
> error: Failed to attach device from usb.xml
> error: server closed connection:
>
> The reason of this bug is that we set data.cgroup to NULL, and this will cause
> libvirtd crashed.
>
> usbDevice *usb;
> - qemuCgroupData data = { vm, cgroup };
> + qemuCgroupData data;
>
> if (virCgroupForDomain(driver->cgroup, vm->def->name,&cgroup,
0) !=0 ) {
> qemuReportError(VIR_ERR_INTERNAL_ERROR,
> @@ -873,6 +873,8 @@ int qemuDomainAttachHostUsbDevice(struct qemud_driver *driver,
> hostdev->source.subsys.u.usb.device)) == NULL)
> goto error;
>
> + data.vm = vm;
> + data.cgroup = cgroup;
ACK. Latent bug introduced in commit b4d3434f, exposed by commit
f2512684. (That explains why I didn't see it - when I tested b4d3434f,
nothing dereferenced the NULL, and my testing of f2512684 wasn't as
thorough).
Thanks. Pushed.
--
libvir-list mailing list
libvir-list(a)redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list