2019-03-13 16:14:29

by Aditya Pakki

[permalink] [raw]
Subject: [PATCH] staging: rtlwifi: Fix potential NULL pointer dereference

phydm.internal is allocated using kzalloc which is used multiple
times without a check for NULL pointer. This patch avoids such a
scenario.

Signed-off-by: Aditya Pakki <[email protected]>
---
drivers/staging/rtlwifi/phydm/rtl_phydm.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/drivers/staging/rtlwifi/phydm/rtl_phydm.c b/drivers/staging/rtlwifi/phydm/rtl_phydm.c
index 9930ed954abb..37c7fcb72b65 100644
--- a/drivers/staging/rtlwifi/phydm/rtl_phydm.c
+++ b/drivers/staging/rtlwifi/phydm/rtl_phydm.c
@@ -181,6 +181,9 @@ static int rtl_phydm_init_priv(struct rtl_priv *rtlpriv,
rtlpriv->phydm.internal =
kzalloc(sizeof(struct phy_dm_struct), GFP_KERNEL);

+ if (!rtlpriv->phydm.internal)
+ return -ENOMEM;
+
_rtl_phydm_init_com_info(rtlpriv, ic, params);

odm_init_all_timers(dm);
--
2.17.1



2019-03-20 10:39:25

by Dan Carpenter

[permalink] [raw]
Subject: Re: [PATCH] staging: rtlwifi: Fix potential NULL pointer dereference

On Wed, Mar 13, 2019 at 11:13:34AM -0500, Aditya Pakki wrote:
> phydm.internal is allocated using kzalloc which is used multiple
> times without a check for NULL pointer. This patch avoids such a
> scenario.
>
> Signed-off-by: Aditya Pakki <[email protected]>
> ---
> drivers/staging/rtlwifi/phydm/rtl_phydm.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/staging/rtlwifi/phydm/rtl_phydm.c b/drivers/staging/rtlwifi/phydm/rtl_phydm.c
> index 9930ed954abb..37c7fcb72b65 100644
> --- a/drivers/staging/rtlwifi/phydm/rtl_phydm.c
> +++ b/drivers/staging/rtlwifi/phydm/rtl_phydm.c
> @@ -181,6 +181,9 @@ static int rtl_phydm_init_priv(struct rtl_priv *rtlpriv,
> rtlpriv->phydm.internal =
> kzalloc(sizeof(struct phy_dm_struct), GFP_KERNEL);
>
> + if (!rtlpriv->phydm.internal)

Don't put a blank line between the allocation and the check. They're

part of the same code and it's weird to double space the code.

regards,
dan carpenter


2019-03-20 13:15:33

by Mukesh Ojha

[permalink] [raw]
Subject: Re: [PATCH] staging: rtlwifi: Fix potential NULL pointer dereference


On 3/13/2019 9:43 PM, Aditya Pakki wrote:
> phydm.internal is allocated using kzalloc which is used multiple
> times without a check for NULL pointer. This patch avoids such a
> scenario.
>
> Signed-off-by: Aditya Pakki <[email protected]>
> ---
> drivers/staging/rtlwifi/phydm/rtl_phydm.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/staging/rtlwifi/phydm/rtl_phydm.c b/drivers/staging/rtlwifi/phydm/rtl_phydm.c
> index 9930ed954abb..37c7fcb72b65 100644
> --- a/drivers/staging/rtlwifi/phydm/rtl_phydm.c
> +++ b/drivers/staging/rtlwifi/phydm/rtl_phydm.c
> @@ -181,6 +181,9 @@ static int rtl_phydm_init_priv(struct rtl_priv *rtlpriv,
> rtlpriv->phydm.internal =
> kzalloc(sizeof(struct phy_dm_struct), GFP_KERNEL);
>
> + if (!rtlpriv->phydm.internal)
> + return -ENOMEM;
> +



Although, it is good to add a check but nobody is checking this
functions returned value.

Reviewed-by: Mukesh Ojha <[email protected]>

Can you fix that cleanly ? Otherwise i will do.

Cheers,
Mukesh


> _rtl_phydm_init_com_info(rtlpriv, ic, params);
>
> odm_init_all_timers(dm);

2019-03-20 15:09:33

by Mukesh Ojha

[permalink] [raw]
Subject: Re: [PATCH] staging: rtlwifi: Fix potential NULL pointer dereference


On 3/13/2019 9:43 PM, Aditya Pakki wrote:
> phydm.internal is allocated using kzalloc which is used multiple
> times without a check for NULL pointer. This patch avoids such a
> scenario.
>
> Signed-off-by: Aditya Pakki<[email protected]>
> ---
> drivers/staging/rtlwifi/phydm/rtl_phydm.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/staging/rtlwifi/phydm/rtl_phydm.c b/drivers/staging/rtlwifi/phydm/rtl_phydm.c
> index 9930ed954abb..37c7fcb72b65 100644
> --- a/drivers/staging/rtlwifi/phydm/rtl_phydm.c
> +++ b/drivers/staging/rtlwifi/phydm/rtl_phydm.c
> @@ -181,6 +181,9 @@ static int rtl_phydm_init_priv(struct rtl_priv *rtlpriv,
> rtlpriv->phydm.internal =
> kzalloc(sizeof(struct phy_dm_struct), GFP_KERNEL);
>
> + if (!rtlpriv->phydm.internal)
> + return -ENOMEM;
> +



Although, it is good to add a check but nobody is checking this
functions returned value.

Reviewed-by: Mukesh Ojha <[email protected]>

Can you fix that cleanly ? or i will do?

Cheers,
Mukesh


> _rtl_phydm_init_com_info(rtlpriv, ic, params);
>
> odm_init_all_timers(dm);