2010-07-29 15:55:21

by Kulikov Vasiliy

[permalink] [raw]
Subject: [PATCH] cpqarray: check put_user() result

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

Signed-off-by: Kulikov Vasiliy <[email protected]>
---
drivers/block/cpqarray.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/block/cpqarray.c b/drivers/block/cpqarray.c
index 9473215..d53b029 100644
--- a/drivers/block/cpqarray.c
+++ b/drivers/block/cpqarray.c
@@ -1179,7 +1179,8 @@ out_passthru:
return error;
case IDAGETCTLRSIG:
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;
case IDAREVALIDATEVOLS:
if (MINOR(bdev->bd_dev) != 0)
@@ -1187,7 +1188,8 @@ out_passthru:
return revalidate_allvol(host);
case IDADRIVERVERSION:
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;
case IDAGETPCIINFO:
{
--
1.7.0.4


2010-07-29 20:25:36

by Mike Miller

[permalink] [raw]
Subject: RE: [PATCH] cpqarray: check put_user() result



> -----Original Message-----
> From: Kulikov Vasiliy [mailto:[email protected]]
> Sent: Thursday, July 29, 2010 10:55 AM
> To: [email protected]
> Cc: Chirag Kantharia; Jens Axboe; Andrew Morton; Alexey
> Dobriyan; Christoph Hellwig; Arnd Bergmann; ISS StorageDev;
> [email protected]
> Subject: [PATCH] cpqarray: check put_user() result
>
> put_user() may fail, if so return -EFAULT.
>
> Signed-off-by: Kulikov Vasiliy <[email protected]>
> ---
> drivers/block/cpqarray.c | 6 ++++--
> 1 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/block/cpqarray.c
> b/drivers/block/cpqarray.c index 9473215..d53b029 100644
> --- a/drivers/block/cpqarray.c
> +++ b/drivers/block/cpqarray.c
> @@ -1179,7 +1179,8 @@ out_passthru:
> return error;
> case IDAGETCTLRSIG:
> 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;
> case IDAREVALIDATEVOLS:
> if (MINOR(bdev->bd_dev) != 0)
> @@ -1187,7 +1188,8 @@ out_passthru:
> return revalidate_allvol(host);
> case IDADRIVERVERSION:
> 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;
> case IDAGETPCIINFO:
> {
> --
> 1.7.0.4
>
>
Acked-by: Mike Miller <[email protected]>-

2010-08-03 11:06:42

by Jens Axboe

[permalink] [raw]
Subject: Re: [PATCH] cpqarray: check put_user() result

On 2010-07-29 17:54, Kulikov Vasiliy wrote:
> put_user() may fail, if so return -EFAULT.

Applied.

--
Jens Axboe


Confidentiality Notice: This e-mail message, its contents and any attachments to it are confidential to the intended recipient, and may contain information that is privileged and/or exempt from disclosure under applicable law. If you are not the intended recipient, please immediately notify the sender and destroy the original e-mail message and any attachments (and any copies that may have been made) from your system or otherwise. Any unauthorized use, copying, disclosure or distribution of this information is strictly prohibited.