2019-03-20 15:43:39

by Aditya Pakki

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

phydm.internal is allocated using kzalloc which is used multiple
times without a check for NULL pointer. This patch avoids such a
scenario by returning 0, consistent with the failure case.

Signed-off-by: Aditya Pakki <[email protected]>

---
v2: Move the signed off line above
v1: Patch collision with different things, fix as per Greg
---
drivers/staging/rtlwifi/phydm/rtl_phydm.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/staging/rtlwifi/phydm/rtl_phydm.c b/drivers/staging/rtlwifi/phydm/rtl_phydm.c
index 9930ed954abb..4cc77b2016e1 100644
--- a/drivers/staging/rtlwifi/phydm/rtl_phydm.c
+++ b/drivers/staging/rtlwifi/phydm/rtl_phydm.c
@@ -180,6 +180,8 @@ 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 0;

_rtl_phydm_init_com_info(rtlpriv, ic, params);

--
2.17.1



2019-03-20 19:24:56

by Mukesh Ojha

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


On 3/20/2019 9:12 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 by returning 0, consistent with the failure case.
>
> Signed-off-by: Aditya Pakki <[email protected]>
>
> ---
> v2: Move the signed off line above
> v1: Patch collision with different things, fix as per Greg
> ---
> drivers/staging/rtlwifi/phydm/rtl_phydm.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/staging/rtlwifi/phydm/rtl_phydm.c b/drivers/staging/rtlwifi/phydm/rtl_phydm.c
> index 9930ed954abb..4cc77b2016e1 100644
> --- a/drivers/staging/rtlwifi/phydm/rtl_phydm.c
> +++ b/drivers/staging/rtlwifi/phydm/rtl_phydm.c
> @@ -180,6 +180,8 @@ 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 0;
>
> _rtl_phydm_init_com_info(rtlpriv, ic, params);
>



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

Thanks,
Mukesh