[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] qemu-xen: fix segfault with empty cdroms



On Fri, 11 Feb 2011, Ian Jackson wrote:
> Stefano Stabellini writes ("[Xen-devel] [PATCH] qemu-xen: fix segfault with 
> empty cdroms"):
> > When the cdrom is empty the params node in xenstore might be missing
> > completely, cope with it instead of segfaulting.
> ...
> >     blkdev->params = xenstore_read_be_str(&blkdev->xendev, "params");
> > -        h = strchr(blkdev->params, ':');
> > +        if (blkdev->params != NULL)
> > +            h = strchr(blkdev->params, ':');
> 
> So blkdev->params may be 0.  In that case, we end up with:
> 
>               blkdev->fileproto = "<unset>";
>               blkdev->filename  = blkdev->params;
> 
> so now ->filename may be 0.  Eventually,
> 
>               if (bdrv_open2(blkdev->bs, blkdev->filename, qflags,
>                              bdrv_find_format(blkdev->fileproto)) != 0) {
> 
> Isn't that going to crash ?
> 
> Perhaps a clause needs to be added to:
> 
>       /* do we have all we need? */
>       if (blkdev->params == NULL ||
>           blkdev->mode == NULL   ||
>           blkdev->type == NULL   ||
>           blkdev->dev == NULL)
>           return -1;
 

No need, in fact if blkdev->params is NULL we return -1 right here.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.