cpqarray: check put_user() result

put_user() may fail, if so return -EFAULT.

Signed-off-by: Kulikov Vasiliy <segooon@gmail.com>
Acked-by: Mike Miller <mike.miller@hp.com>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
This commit is contained in:
Kulikov Vasiliy 2010-08-03 12:52:55 +02:00 committed by Jens Axboe
parent 08852b6d6c
commit f6c4c8e19a

View File

@ -1179,7 +1179,8 @@ static int ida_locked_ioctl(struct block_device *bdev, fmode_t mode, unsigned in
return error; return error;
case IDAGETCTLRSIG: case IDAGETCTLRSIG:
if (!arg) return -EINVAL; if (!arg) return -EINVAL;
put_user(host->ctlr_sig, (int __user *)arg); if (put_user(host->ctlr_sig, (int __user *)arg))
return -EFAULT;
return 0; return 0;
case IDAREVALIDATEVOLS: case IDAREVALIDATEVOLS:
if (MINOR(bdev->bd_dev) != 0) if (MINOR(bdev->bd_dev) != 0)
@ -1187,7 +1188,8 @@ static int ida_locked_ioctl(struct block_device *bdev, fmode_t mode, unsigned in
return revalidate_allvol(host); return revalidate_allvol(host);
case IDADRIVERVERSION: case IDADRIVERVERSION:
if (!arg) return -EINVAL; if (!arg) return -EINVAL;
put_user(DRIVER_VERSION, (unsigned long __user *)arg); if (put_user(DRIVER_VERSION, (unsigned long __user *)arg))
return -EFAULT;
return 0; return 0;
case IDAGETPCIINFO: case IDAGETPCIINFO:
{ {