* [PATCH] reset: hisilicon: fix potential NULL pointer dereference
@ 2018-07-19 1:58 Gustavo A. R. Silva
2018-07-25 23:45 ` Stephen Boyd
0 siblings, 1 reply; 4+ messages in thread
From: Gustavo A. R. Silva @ 2018-07-19 1:58 UTC (permalink / raw)
To: Jiancheng Xue, Michael Turquette, Stephen Boyd
Cc: linux-clk, linux-kernel, Gustavo A. R. Silva
There is a potential execution path in which function
platform_get_resource() returns NULL. If this happens,
we will end up having a NULL pointer dereference.
Fix this by adding asanity check in order to avoid a
NULL pointer dereference.
This code was detected with the help of Coccinelle.
Cc: stable@vger.kernel.org
Fixes: 97b7129cd2af ("reset: hisilicon: change the definition of hisi_reset_init")
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
---
drivers/clk/hisilicon/reset.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/clk/hisilicon/reset.c b/drivers/clk/hisilicon/reset.c
index 2a5015c..5dfb48b 100644
--- a/drivers/clk/hisilicon/reset.c
+++ b/drivers/clk/hisilicon/reset.c
@@ -109,6 +109,9 @@ struct hisi_reset_controller *hisi_reset_init(struct platform_device *pdev)
return NULL;
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ if (!res)
+ return NULL;
+
rstc->membase = devm_ioremap(&pdev->dev,
res->start, resource_size(res));
if (!rstc->membase)
--
2.7.4
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH] reset: hisilicon: fix potential NULL pointer dereference
2018-07-19 1:58 [PATCH] reset: hisilicon: fix potential NULL pointer dereference Gustavo A. R. Silva
@ 2018-07-25 23:45 ` Stephen Boyd
0 siblings, 0 replies; 4+ messages in thread
From: Stephen Boyd @ 2018-07-25 23:45 UTC (permalink / raw)
To: Gustavo A. R. Silva, Jiancheng Xue, Michael Turquette
Cc: linux-clk, linux-kernel, Gustavo A. R. Silva
Quoting Gustavo A. R. Silva (2018-07-18 18:58:45)
> There is a potential execution path in which function
> platform_get_resource() returns NULL. If this happens,
> we will end up having a NULL pointer dereference.
> =
> Fix this by adding asanity check in order to avoid a
> NULL pointer dereference.
> =
> This code was detected with the help of Coccinelle.
> =
> Cc: stable@vger.kernel.org
> Fixes: 97b7129cd2af ("reset: hisilicon: change the definition of hisi_res=
et_init")
> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
> ---
> drivers/clk/hisilicon/reset.c | 3 +++
> 1 file changed, 3 insertions(+)
> =
> diff --git a/drivers/clk/hisilicon/reset.c b/drivers/clk/hisilicon/reset.c
> index 2a5015c..5dfb48b 100644
> --- a/drivers/clk/hisilicon/reset.c
> +++ b/drivers/clk/hisilicon/reset.c
> @@ -109,6 +109,9 @@ struct hisi_reset_controller *hisi_reset_init(struct =
platform_device *pdev)
> return NULL;
> =
> res =3D platform_get_resource(pdev, IORESOURCE_MEM, 0);
> + if (!res)
> + return NULL;
> +
> rstc->membase =3D devm_ioremap(&pdev->dev,
> res->start, resource_size(res));
Why can't we use devm_ioremap_resource() here instead?
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH] reset: hisilicon: fix potential NULL pointer dereference
@ 2018-07-25 23:45 ` Stephen Boyd
0 siblings, 0 replies; 4+ messages in thread
From: Stephen Boyd @ 2018-07-25 23:45 UTC (permalink / raw)
To: Gustavo A. R. Silva, Jiancheng Xue, Michael Turquette
Cc: linux-clk, linux-kernel, Gustavo A. R. Silva
Quoting Gustavo A. R. Silva (2018-07-18 18:58:45)
> There is a potential execution path in which function
> platform_get_resource() returns NULL. If this happens,
> we will end up having a NULL pointer dereference.
>
> Fix this by adding asanity check in order to avoid a
> NULL pointer dereference.
>
> This code was detected with the help of Coccinelle.
>
> Cc: stable@vger.kernel.org
> Fixes: 97b7129cd2af ("reset: hisilicon: change the definition of hisi_reset_init")
> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
> ---
> drivers/clk/hisilicon/reset.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/clk/hisilicon/reset.c b/drivers/clk/hisilicon/reset.c
> index 2a5015c..5dfb48b 100644
> --- a/drivers/clk/hisilicon/reset.c
> +++ b/drivers/clk/hisilicon/reset.c
> @@ -109,6 +109,9 @@ struct hisi_reset_controller *hisi_reset_init(struct platform_device *pdev)
> return NULL;
>
> res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> + if (!res)
> + return NULL;
> +
> rstc->membase = devm_ioremap(&pdev->dev,
> res->start, resource_size(res));
Why can't we use devm_ioremap_resource() here instead?
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH] reset: hisilicon: fix potential NULL pointer dereference
2018-07-25 23:45 ` Stephen Boyd
(?)
@ 2018-07-26 0:25 ` Gustavo A. R. Silva
-1 siblings, 0 replies; 4+ messages in thread
From: Gustavo A. R. Silva @ 2018-07-26 0:25 UTC (permalink / raw)
To: Stephen Boyd, Jiancheng Xue, Michael Turquette; +Cc: linux-clk, linux-kernel
Hi Stephen,
On 07/25/2018 06:45 PM, Stephen Boyd wrote:
> Quoting Gustavo A. R. Silva (2018-07-18 18:58:45)
>> There is a potential execution path in which function
>> platform_get_resource() returns NULL. If this happens,
>> we will end up having a NULL pointer dereference.
>>
>> Fix this by adding asanity check in order to avoid a
>> NULL pointer dereference.
>>
>> This code was detected with the help of Coccinelle.
>>
>> Cc: stable@vger.kernel.org
>> Fixes: 97b7129cd2af ("reset: hisilicon: change the definition of hisi_reset_init")
>> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
>> ---
>> drivers/clk/hisilicon/reset.c | 3 +++
>> 1 file changed, 3 insertions(+)
>>
>> diff --git a/drivers/clk/hisilicon/reset.c b/drivers/clk/hisilicon/reset.c
>> index 2a5015c..5dfb48b 100644
>> --- a/drivers/clk/hisilicon/reset.c
>> +++ b/drivers/clk/hisilicon/reset.c
>> @@ -109,6 +109,9 @@ struct hisi_reset_controller *hisi_reset_init(struct platform_device *pdev)
>> return NULL;
>>
>> res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
>> + if (!res)
>> + return NULL;
>> +
>> rstc->membase = devm_ioremap(&pdev->dev,
>> res->start, resource_size(res));
>
> Why can't we use devm_ioremap_resource() here instead?
>
You're right. I think we can perfectly use devm_ioremap_resource here and remove the null check.
I'll send patch for this shortly.
Thanks
--
Gustavo
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2018-07-26 0:25 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-07-19 1:58 [PATCH] reset: hisilicon: fix potential NULL pointer dereference Gustavo A. R. Silva
2018-07-25 23:45 ` Stephen Boyd
2018-07-25 23:45 ` Stephen Boyd
2018-07-26 0:25 ` Gustavo A. R. Silva
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.