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

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



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;

Ian.

_______________________________________________
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®.