aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Bottomley <jejb@linux.ibm.com>2020-11-28 15:27:21 -0800
committerMartin K. Petersen <martin.petersen@oracle.com>2023-02-21 17:44:06 -0500
commit3fe97ff3d94934649abb0652028dd7296170c8d0 (patch)
tree66dd5af93c610b2406bd9b360b428cf2975c19a5
parentscsi: ses: Fix slab-out-of-bounds in ses_intf_remove() (diff)
downloadlinux-rng-3fe97ff3d94934649abb0652028dd7296170c8d0.tar.xz
linux-rng-3fe97ff3d94934649abb0652028dd7296170c8d0.zip
scsi: ses: Don't attach if enclosure has no components
An enclosure with no components can't usefully be operated by the driver (since effectively it has nothing to manage), so report the problem and don't attach. Not attaching also fixes an oops which could occur if the driver tries to manage a zero component enclosure. [mkp: Switched to KERN_WARNING since this scenario is common] Link: https://lore.kernel.org/r/c5deac044ac409e32d9ad9968ce0dcbc996bfc7a.camel@linux.ibm.com Cc: stable@vger.kernel.org Reported-by: Ding Hui <dinghui@sangfor.com.cn> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-rw-r--r--drivers/scsi/ses.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/scsi/ses.c b/drivers/scsi/ses.c
index 9d4fb09acc1e..b11a9162e73a 100644
--- a/drivers/scsi/ses.c
+++ b/drivers/scsi/ses.c
@@ -733,6 +733,12 @@ static int ses_intf_add(struct device *cdev,
type_ptr[0] == ENCLOSURE_COMPONENT_ARRAY_DEVICE)
components += type_ptr[1];
}
+
+ if (components == 0) {
+ sdev_printk(KERN_WARNING, sdev, "enclosure has no enumerated components\n");
+ goto err_free;
+ }
+
ses_dev->page1 = buf;
ses_dev->page1_len = len;
buf = NULL;