2019-11-21 12:10:12

by Luc Van Oostenryck

[permalink] [raw]
Subject: [PATCH] misc: xilinx_sdfec: add missing __user annotation

The second arg of xsdfec_set_order() is a 'void __user *'
and this pointer is then used in get_user() which expect
a __user pointer.

But get_user() can't be used with a void pointer, it a
pointer to the effective type. This is done here by casting
the argument to a pointer to the effective type but the
__user is missing in the cast.

Fix this by adding the missing __user in the cast.

CC: Derek Kiernan <[email protected]>
CC: Dragan Cvetic <[email protected]>
Signed-off-by: Luc Van Oostenryck <[email protected]>
---
drivers/misc/xilinx_sdfec.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/misc/xilinx_sdfec.c b/drivers/misc/xilinx_sdfec.c
index 11835969e982..f05e1b4c2826 100644
--- a/drivers/misc/xilinx_sdfec.c
+++ b/drivers/misc/xilinx_sdfec.c
@@ -733,7 +733,7 @@ static int xsdfec_set_order(struct xsdfec_dev *xsdfec, void __user *arg)
enum xsdfec_order order;
int err;

- err = get_user(order, (enum xsdfec_order *)arg);
+ err = get_user(order, (enum xsdfec_order __user *)arg);
if (err)
return -EFAULT;

--
2.24.0


2019-11-21 15:42:32

by Dragan Cvetic

[permalink] [raw]
Subject: RE: [PATCH] misc: xilinx_sdfec: add missing __user annotation

Hi Luc,

Find my comments below

> -----Original Message-----
> From: Luc Van Oostenryck [mailto:[email protected]]
> Sent: Thursday 21 November 2019 12:08
> To: [email protected]
> Cc: [email protected]; Luc Van Oostenryck <[email protected]>; Derek Kiernan
> <[email protected]>; Dragan Cvetic <[email protected]>
> Subject: [PATCH] misc: xilinx_sdfec: add missing __user annotation
>
> The second arg of xsdfec_set_order() is a 'void __user *'
> and this pointer is then used in get_user() which expect
> a __user pointer.
>
> But get_user() can't be used with a void pointer, it a
> pointer to the effective type. This is done here by casting
> the argument to a pointer to the effective type but the
> __user is missing in the cast.
>
> Fix this by adding the missing __user in the cast.
>
> CC: Derek Kiernan <[email protected]>
> CC: Dragan Cvetic <[email protected]>
> Signed-off-by: Luc Van Oostenryck <[email protected]>
> ---
> drivers/misc/xilinx_sdfec.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/misc/xilinx_sdfec.c b/drivers/misc/xilinx_sdfec.c
> index 11835969e982..f05e1b4c2826 100644
> --- a/drivers/misc/xilinx_sdfec.c
> +++ b/drivers/misc/xilinx_sdfec.c
> @@ -733,7 +733,7 @@ static int xsdfec_set_order(struct xsdfec_dev *xsdfec, void __user *arg)
> enum xsdfec_order order;
> int err;
>
> - err = get_user(order, (enum xsdfec_order *)arg);
> + err = get_user(order, (enum xsdfec_order __user *)arg);
> if (err)
> return -EFAULT;
>
> --
> 2.24.0


Acked-by: Dragan Cvetic <[email protected]>