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). -- Eric Blake eblake@xxxxxxxxxx +1-801-349-2682 Libvirt virtualization library http://libvirt.org
Attachment:
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list