mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 20:00:53 +07:00
scsi: aacraid: reading out of bounds
"qd.id" comes directly from the copy_from_user() on the line before so we should verify that it's within bounds. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
722477c4f2
commit
e6fd916a62
@ -3198,10 +3198,11 @@ static int query_disk(struct aac_dev *dev, void __user *arg)
|
||||
return -EBUSY;
|
||||
if (copy_from_user(&qd, arg, sizeof (struct aac_query_disk)))
|
||||
return -EFAULT;
|
||||
if (qd.cnum == -1)
|
||||
if (qd.cnum == -1) {
|
||||
if (qd.id < 0 || qd.id >= dev->maximum_num_containers)
|
||||
return -EINVAL;
|
||||
qd.cnum = qd.id;
|
||||
else if ((qd.bus == -1) && (qd.id == -1) && (qd.lun == -1))
|
||||
{
|
||||
} else if ((qd.bus == -1) && (qd.id == -1) && (qd.lun == -1)) {
|
||||
if (qd.cnum < 0 || qd.cnum >= dev->maximum_num_containers)
|
||||
return -EINVAL;
|
||||
qd.instance = dev->scsi_host_ptr->host_no;
|
||||
|
Loading…
Reference in New Issue
Block a user