Laszlo Ersek
2011-May-25 10:24 UTC
[Xen-devel] [PATCH linux-2.6.18-xen] blkback: don''t call vbd_size() if bd_disk is NULL
...because vbd_size() dereferences bd_disk if bd_part is NULL. Signed-off-by: Laszlo Ersek<lersek@redhat.com> --- drivers/xen/blkback/vbd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff -r 415a9b435fef drivers/xen/blkback/vbd.c --- a/drivers/xen/blkback/vbd.c Mon May 23 18:36:33 2011 +0100 +++ b/drivers/xen/blkback/vbd.c Wed May 25 12:15:26 2011 +0200 @@ -73,7 +73,6 @@ int vbd_create(blkif_t *blkif, blkif_vde } vbd->bdev = bdev; - vbd->size = vbd_size(vbd); if (vbd->bdev->bd_disk == NULL) { DPRINTK("vbd_creat: device %08x doesn''t exist.\n", @@ -82,6 +81,8 @@ int vbd_create(blkif_t *blkif, blkif_vde return -ENOENT; } + vbd->size = vbd_size(vbd); + if (vbd->bdev->bd_disk->flags & GENHD_FL_CD || cdrom) vbd->type |= VDISK_CDROM; if (vbd->bdev->bd_disk->flags & GENHD_FL_REMOVABLE) _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Jan Beulich
2011-May-25 10:36 UTC
Re: [Xen-devel] [PATCH linux-2.6.18-xen] blkback: don''t call vbd_size() if bd_disk is NULL
>>> On 25.05.11 at 12:24, Laszlo Ersek <lersek@redhat.com> wrote: > ...because vbd_size() dereferences bd_disk if bd_part is NULL. > > Signed-off-by: Laszlo Ersek<lersek@redhat.com>Acked-by: Jan Beulich <jbeulich@novell.com>> --- > drivers/xen/blkback/vbd.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff -r 415a9b435fef drivers/xen/blkback/vbd.c > --- a/drivers/xen/blkback/vbd.c Mon May 23 18:36:33 2011 +0100 > +++ b/drivers/xen/blkback/vbd.c Wed May 25 12:15:26 2011 +0200 > @@ -73,7 +73,6 @@ int vbd_create(blkif_t *blkif, blkif_vde > } > > vbd->bdev = bdev; > - vbd->size = vbd_size(vbd); > > if (vbd->bdev->bd_disk == NULL) { > DPRINTK("vbd_creat: device %08x doesn''t exist.\n", > @@ -82,6 +81,8 @@ int vbd_create(blkif_t *blkif, blkif_vde > return -ENOENT; > } > > + vbd->size = vbd_size(vbd); > + > if (vbd->bdev->bd_disk->flags & GENHD_FL_CD || cdrom) > vbd->type |= VDISK_CDROM; > if (vbd->bdev->bd_disk->flags & GENHD_FL_REMOVABLE) > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Konrad Rzeszutek Wilk
2011-May-25 13:01 UTC
Re: [Xen-devel] [PATCH linux-2.6.18-xen] blkback: don''t call vbd_size() if bd_disk is NULL
On Wed, May 25, 2011 at 11:36:04AM +0100, Jan Beulich wrote:> >>> On 25.05.11 at 12:24, Laszlo Ersek <lersek@redhat.com> wrote: > > ...because vbd_size() dereferences bd_disk if bd_part is NULL.Which would imply that doing this on disk without any partitions would crash. Weird, I don''t seem to get that problem on a disk without any partitions (just a raw disk). Or does the kernel actually set the bd_part to something even if it does not have any partitions?> > > > Signed-off-by: Laszlo Ersek<lersek@redhat.com> > > Acked-by: Jan Beulich <jbeulich@novell.com> > > > --- > > drivers/xen/blkback/vbd.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff -r 415a9b435fef drivers/xen/blkback/vbd.c > > --- a/drivers/xen/blkback/vbd.c Mon May 23 18:36:33 2011 +0100 > > +++ b/drivers/xen/blkback/vbd.c Wed May 25 12:15:26 2011 +0200 > > @@ -73,7 +73,6 @@ int vbd_create(blkif_t *blkif, blkif_vde > > } > > > > vbd->bdev = bdev; > > - vbd->size = vbd_size(vbd); > > > > if (vbd->bdev->bd_disk == NULL) { > > DPRINTK("vbd_creat: device %08x doesn''t exist.\n", > > @@ -82,6 +81,8 @@ int vbd_create(blkif_t *blkif, blkif_vde > > return -ENOENT; > > } > > > > + vbd->size = vbd_size(vbd); > > + > > if (vbd->bdev->bd_disk->flags & GENHD_FL_CD || cdrom) > > vbd->type |= VDISK_CDROM; > > if (vbd->bdev->bd_disk->flags & GENHD_FL_REMOVABLE) > > > > _______________________________________________ > > Xen-devel mailing list > > Xen-devel@lists.xensource.com > > http://lists.xensource.com/xen-devel > > > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel