Sophie

Sophie

distrib > CentOS > 5 > x86_64 > by-pkgid > ea32411352494358b8d75a78402a4713 > files > 4988

kernel-2.6.18-238.19.1.el5.centos.plus.src.rpm

From: Andrew Jones <drjones@redhat.com>
Date: Thu, 2 Dec 2010 17:34:12 -0500
Subject: [virt] xen: don't allow blkback virtual CDROM device
Message-id: <1291311252-8227-3-git-send-email-drjones@redhat.com>
Patchwork-id: 29826
O-Subject: [RHEL5.6 PATCH 2/2] blkbk: don't allow virtual CDROM device
Bugzilla: 635638
CVE: CVE-2010-4238

Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=635638
Signed-off-by: Jarod Wilson <jarod@redhat.com>

diff --git a/drivers/xen/blkback/vbd.c b/drivers/xen/blkback/vbd.c
index c1862ce..a0f6920 100644
--- a/drivers/xen/blkback/vbd.c
+++ b/drivers/xen/blkback/vbd.c
@@ -75,15 +75,15 @@ int vbd_create(blkif_t *blkif, blkif_vdev_t handle, unsigned major,
 
 	vbd->bdev = bdev;
 
-	if (vbd->bdev->bd_disk == NULL) {
+	/* CD-ROMs are not supported by xen blkback */
+	if (vbd->bdev->bd_disk == NULL ||
+	    vbd->bdev->bd_disk->flags & GENHD_FL_CD) {
 		DPRINTK("vbd_creat: device %08x doesn't exist.\n",
 			vbd->pdevice);
 		vbd_free(vbd);
 		return -ENOENT;
 	}
 
-	if (vbd->bdev->bd_disk->flags & GENHD_FL_CD)
-		vbd->type |= VDISK_CDROM;
 	if (vbd->bdev->bd_disk->flags & GENHD_FL_REMOVABLE)
 		vbd->type |= VDISK_REMOVABLE;