Skip to contentSkip to conversation

scsi: myrs: cleanup myrs_store_suppress_enclosure_messages()

PATCH New Dan Carpenter 1 participant 1 message Feb 20, 2018

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/2 scsi: myrs: cleanup myrs_store_suppress_enclosure_messages()

This code causes a static checker because we have an upper bound on "value" but not a lower bound. In other words "value" can be s32min-2. It's harmless but really it should just be bool.

drivers/scsi/myrs.c +5 -8
index 3b87c6942a8e..eaa9d143a282 100644
@@ -1590,15 +1590,12 @@ static ssize_t myrs_store_suppress_enclosure_messages(struct device *dev,
 {
 	struct scsi_device *sdev = to_scsi_device(dev);
 	myrs_hba *cs = (myrs_hba *)sdev->host->hostdata;
-	char tmpbuf[8];
-	ssize_t len;
-	int value;
+	bool value;
+	int ret;
 
-	len = count > sizeof(tmpbuf) - 1 ? sizeof(tmpbuf) - 1 : count;
-	strncpy(tmpbuf, buf, len);
-	tmpbuf[len] = '\0';
-	if (sscanf(tmpbuf, "%d", &value) != 1 || value > 2)
-		return -EINVAL;
+	ret = kstrtobool(buf, &value);
+	if (ret)
+		return ret;
 
 	cs->disable_enc_msg = value;
 	return count;