@@ -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;
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. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>