From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laszlo Ersek Subject: [PATCH linux-2.6.18-xen] blkback: don't call vbd_size() if bd_disk is NULL Date: Wed, 25 May 2011 12:24:25 +0200 Message-ID: <4DDCD8D9.2060404@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: "xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org ...because vbd_size() dereferences bd_disk if bd_part is NULL. Signed-off-by: Laszlo Ersek --- 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)