diff options
| author | Bart Van Assche <bvanassche@acm.org> | 2025-10-31 15:18:44 -0700 |
|---|---|---|
| committer | Martin K. Petersen <martin.petersen@oracle.com> | 2025-11-02 21:56:22 -0500 |
| commit | 867e4b1bae4bc990dcdbc756f2caa680818036bd (patch) | |
| tree | c7eae63561c7007d85f570edb3b7c57740773450 | |
| parent | 61deab8a323da26415363af045a0a1f2c12baf4a (diff) | |
scsi: core: Improve sdev_store_timeout()
Check whether or not the conversion of the argument to an integer
succeeded. Reject invalid timeout values.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Link: https://patch.msgid.link/20251031221844.2921694-1-bvanassche@acm.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
| -rw-r--r-- | drivers/scsi/scsi_sysfs.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/scsi/scsi_sysfs.c b/drivers/scsi/scsi_sysfs.c index 2cbbba192b24..6b347596ef19 100644 --- a/drivers/scsi/scsi_sysfs.c +++ b/drivers/scsi/scsi_sysfs.c @@ -648,10 +648,14 @@ static ssize_t sdev_store_timeout (struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { - struct scsi_device *sdev; - int timeout; - sdev = to_scsi_device(dev); - sscanf (buf, "%d\n", &timeout); + struct scsi_device *sdev = to_scsi_device(dev); + int ret, timeout; + + ret = kstrtoint(buf, 0, &timeout); + if (ret) + return ret; + if (timeout <= 0) + return -EINVAL; blk_queue_rq_timeout(sdev->request_queue, timeout * HZ); return count; } |
