diff mbox series

[v2] watchdog: ie6xx_wdt: Check for null res pointer

Message ID 20211220062104.770247-1-jiasheng@iscas.ac.cn (mailing list archive)
State Rejected
Headers show
Series [v2] watchdog: ie6xx_wdt: Check for null res pointer | expand

Commit Message

Jiasheng Jiang Dec. 20, 2021, 6:21 a.m. UTC
The return value of platform_get_resource() needs to be checked.
To avoid use of error pointer in case that there is no suitable resource.

Fixes: 101ce87b3bdd ("watchdog: Add watchdog driver for Intel Atom E6XX")
Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
---
Changelog:

v1 -> v2

*Change 1. Correct the commit message.
---
 drivers/watchdog/ie6xx_wdt.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Guenter Roeck Dec. 20, 2021, 3:41 p.m. UTC | #1
On 12/19/21 10:21 PM, Jiasheng Jiang wrote:
> The return value of platform_get_resource() needs to be checked.
> To avoid use of error pointer in case that there is no suitable resource.
> 

How would that resource disappear since the probe function ?

That driver could use a lot of cleanup (use devm_request_region(),
use watchdog_stop_on_unregister(), stop using a static data structure,
use devm_add_action_or_reset to trigger the call to debugfs_remove,
use devm_watchdog_register_device and drop the remove function),
but this change addresses a non-existing problem.

Guenter

> Fixes: 101ce87b3bdd ("watchdog: Add watchdog driver for Intel Atom E6XX")
> Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
> ---
> Changelog:
> 
> v1 -> v2
> 
> *Change 1. Correct the commit message.
> ---
>   drivers/watchdog/ie6xx_wdt.c | 3 +++
>   1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/watchdog/ie6xx_wdt.c b/drivers/watchdog/ie6xx_wdt.c
> index 8f28993fab8b..ee5b68d2e271 100644
> --- a/drivers/watchdog/ie6xx_wdt.c
> +++ b/drivers/watchdog/ie6xx_wdt.c
> @@ -271,6 +271,9 @@ static int ie6xx_wdt_remove(struct platform_device *pdev)
>   	struct resource *res;
>   
>   	res = platform_get_resource(pdev, IORESOURCE_IO, 0);
> +	if (!res)
> +		return -EINVAL;
> +
>   	ie6xx_wdt_stop(NULL);
>   	watchdog_unregister_device(&ie6xx_wdt_dev);
>   	ie6xx_wdt_debugfs_exit();
>
diff mbox series

Patch

diff --git a/drivers/watchdog/ie6xx_wdt.c b/drivers/watchdog/ie6xx_wdt.c
index 8f28993fab8b..ee5b68d2e271 100644
--- a/drivers/watchdog/ie6xx_wdt.c
+++ b/drivers/watchdog/ie6xx_wdt.c
@@ -271,6 +271,9 @@  static int ie6xx_wdt_remove(struct platform_device *pdev)
 	struct resource *res;
 
 	res = platform_get_resource(pdev, IORESOURCE_IO, 0);
+	if (!res)
+		return -EINVAL;
+
 	ie6xx_wdt_stop(NULL);
 	watchdog_unregister_device(&ie6xx_wdt_dev);
 	ie6xx_wdt_debugfs_exit();