dbc4a9b
From: "kernel-team@fedoraproject.org" <kernel-team@fedoraproject.org>
dbc4a9b
Date: Fri, 10 Feb 2012 14:56:13 -0500
dbc4a9b
Subject: [PATCH] scsi: sd_revalidate_disk prevent NULL ptr deref
dbc4a9b
68d0d67
Bugzilla: 754518
68d0d67
Upstream-status: Fedora mustard (might be worth dropping...)
dbc4a9b
---
dbc4a9b
 drivers/scsi/sd.c | 7 ++++++-
dbc4a9b
 1 file changed, 6 insertions(+), 1 deletion(-)
68d0d67
dbc4a9b
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
dbc4a9b
index 2c2041ca4b70..e10812d985af 100644
dbc4a9b
--- a/drivers/scsi/sd.c
dbc4a9b
+++ b/drivers/scsi/sd.c
dbc4a9b
@@ -2749,13 +2749,18 @@ static int sd_try_extended_inquiry(struct scsi_device *sdp)
af1af57
 static int sd_revalidate_disk(struct gendisk *disk)
af1af57
 {
af1af57
 	struct scsi_disk *sdkp = scsi_disk(disk);
af1af57
-	struct scsi_device *sdp = sdkp->device;
af1af57
+	struct scsi_device *sdp;
af1af57
 	unsigned char *buffer;
dbc4a9b
 	unsigned int max_xfer;
af1af57
 
af1af57
 	SCSI_LOG_HLQUEUE(3, sd_printk(KERN_INFO, sdkp,
af1af57
 				      "sd_revalidate_disk\n"));
af1af57
 
7505efc
+	if (WARN_ONCE((!sdkp), "Invalid scsi_disk from %p\n", disk))
af1af57
+		goto out;
af1af57
+
af1af57
+	sdp = sdkp->device;
af1af57
+
af1af57
 	/*
af1af57
 	 * If the device is offline, don't try and read capacity or any
af1af57
 	 * of the other niceties.
dbc4a9b
-- 
c47527a
2.1.0
dbc4a9b