[libvirt] [PATCH] Initialization error of qemuCgroupData in Qemu host usb hotplug

Eric Blake eblake at redhat.com
Wed Mar 23 12:25:52 UTC 2011


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 at redhat.com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 619 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20110323/4ceeaf2b/attachment-0001.sig>


More information about the libvir-list mailing list