RE: [PATCH] cpqarray: check put_user() result

From: Miller, Mike (OS Dev)
Date: Thu Jul 29 2010 - 16:25:40 EST




> -----Original Message-----
> From: Kulikov Vasiliy [mailto:segooon@xxxxxxxxx]
> Sent: Thursday, July 29, 2010 10:55 AM
> To: kernel-janitors@xxxxxxxxxxxxxxx
> Cc: Chirag Kantharia; Jens Axboe; Andrew Morton; Alexey
> Dobriyan; Christoph Hellwig; Arnd Bergmann; ISS StorageDev;
> linux-kernel@xxxxxxxxxxxxxxx
> Subject: [PATCH] cpqarray: check put_user() result
>
> put_user() may fail, if so return -EFAULT.
>
> Signed-off-by: Kulikov Vasiliy <segooon@xxxxxxxxx>
> ---
> 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 <mike.miller@xxxxxx>--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/