2012-10-08 00:43:48

by Wei Yongjun

[permalink] [raw]
Subject: [PATCH] staging: r8712u: fix potential NULL pointer dereference in r871x_wps_start()

From: Wei Yongjun <[email protected]>

The dereference should be moved below the NULL test.

dpatch engine is used to auto generate this patch.
(https://github.com/weiyj/dpatch)

Signed-off-by: Wei Yongjun <[email protected]>
---
drivers/staging/rtl8712/rtl871x_ioctl_linux.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
index c9a6a7f..3a64790 100644
--- a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
+++ b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
@@ -2110,10 +2110,10 @@ static int r871x_wps_start(struct net_device *dev,
struct iw_point *pdata = &wrqu->data;
u32 u32wps_start = 0;

- if (copy_from_user((void *)&u32wps_start, pdata->pointer, 4))
- return -EFAULT;
if ((padapter->bDriverStopped) || (pdata == NULL))
return -EINVAL;
+ if (copy_from_user((void *)&u32wps_start, pdata->pointer, 4))
+ return -EFAULT;
if (u32wps_start == 0)
u32wps_start = *extra;
if (u32wps_start == 1) /* WPS Start */


2012-10-08 01:04:28

by Larry Finger

[permalink] [raw]
Subject: Re: [PATCH] staging: r8712u: fix potential NULL pointer dereference in r871x_wps_start()

On 10/07/2012 07:43 PM, Wei Yongjun wrote:
> From: Wei Yongjun <[email protected]>
>
> The dereference should be moved below the NULL test.
>
> dpatch engine is used to auto generate this patch.
> (https://github.com/weiyj/dpatch)
>
> Signed-off-by: Wei Yongjun <[email protected]>
> ---
> drivers/staging/rtl8712/rtl871x_ioctl_linux.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)

Acked-by: Larry Finger <[email protected]>

Thanks,

Larry

>
> diff --git a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
> index c9a6a7f..3a64790 100644
> --- a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
> +++ b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
> @@ -2110,10 +2110,10 @@ static int r871x_wps_start(struct net_device *dev,
> struct iw_point *pdata = &wrqu->data;
> u32 u32wps_start = 0;
>
> - if (copy_from_user((void *)&u32wps_start, pdata->pointer, 4))
> - return -EFAULT;
> if ((padapter->bDriverStopped) || (pdata == NULL))
> return -EINVAL;
> + if (copy_from_user((void *)&u32wps_start, pdata->pointer, 4))
> + return -EFAULT;
> if (u32wps_start == 0)
> u32wps_start = *extra;
> if (u32wps_start == 1) /* WPS Start */
>
>