瀏覽代碼

mvsas: don't allow negative timeouts

There is a static checker warning here because "val" is controlled by
the user and we have a upper bound on it but allow negative numbers.
"val" appears to be a timeout in usec so this bug probably means we
have a longer timeout than we should.  Let's fix this by changing "val"
to unsigned.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Reviewed-by: Jack Wang <jinpu.wang@profitbricks.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Dan Carpenter 9 年之前
父節點
當前提交
78b7b80cf0
共有 1 個文件被更改,包括 2 次插入2 次删除
  1. 2 2
      drivers/scsi/mvsas/mv_init.c

+ 2 - 2
drivers/scsi/mvsas/mv_init.c

@@ -759,7 +759,7 @@ mvs_store_interrupt_coalescing(struct device *cdev,
 			struct device_attribute *attr,
 			struct device_attribute *attr,
 			const char *buffer, size_t size)
 			const char *buffer, size_t size)
 {
 {
-	int val = 0;
+	unsigned int val = 0;
 	struct mvs_info *mvi = NULL;
 	struct mvs_info *mvi = NULL;
 	struct Scsi_Host *shost = class_to_shost(cdev);
 	struct Scsi_Host *shost = class_to_shost(cdev);
 	struct sas_ha_struct *sha = SHOST_TO_SAS_HA(shost);
 	struct sas_ha_struct *sha = SHOST_TO_SAS_HA(shost);
@@ -767,7 +767,7 @@ mvs_store_interrupt_coalescing(struct device *cdev,
 	if (buffer == NULL)
 	if (buffer == NULL)
 		return size;
 		return size;
 
 
-	if (sscanf(buffer, "%d", &val) != 1)
+	if (sscanf(buffer, "%u", &val) != 1)
 		return -EINVAL;
 		return -EINVAL;
 
 
 	if (val >= 0x10000) {
 	if (val >= 0x10000) {