[PATCH] mtd: physmap-core: Fix NULL pointer dereferencing in of_select_probe_type()

Zeng Jingxiang posted 1 patch 3 years, 8 months ago
drivers/mtd/maps/physmap-core.c | 3 +++
1 file changed, 3 insertions(+)
[PATCH] mtd: physmap-core: Fix NULL pointer dereferencing in of_select_probe_type()
Posted by Zeng Jingxiang 3 years, 8 months ago
From: Zeng Jingxiang <linuszeng@tencent.com>

Coverity complains of a possible NULL dereference:

in of_select_probe_type():
1. returned_null: of_match_device() returns NULL.
2. var_assigned: match = NULL return value from of_match_device()
309	match = of_match_device(of_flash_match, &dev->dev);

3.dereference: Dereferencing the NULL pointer match.
310	probe_type = match->data;

Signed-off-by: Zeng Jingxiang <linuszeng@tencent.com>
---
 drivers/mtd/maps/physmap-core.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/mtd/maps/physmap-core.c b/drivers/mtd/maps/physmap-core.c
index 4f63b8430c71..69d0ab1f6f94 100644
--- a/drivers/mtd/maps/physmap-core.c
+++ b/drivers/mtd/maps/physmap-core.c
@@ -307,6 +307,9 @@ static const char *of_select_probe_type(struct platform_device *dev)
 	const char *probe_type;
 
 	match = of_match_device(of_flash_match, &dev->dev);
+	if (!match)
+		return NULL;
+
 	probe_type = match->data;
 	if (probe_type)
 		return probe_type;
-- 
2.27.0
Re: [PATCH] mtd: physmap-core: Fix NULL pointer dereferencing in of_select_probe_type()
Posted by Miquel Raynal 3 years, 6 months ago
On Wed, 2022-07-27 at 06:03:02 UTC, Zeng Jingxiang wrote:
> From: Zeng Jingxiang <linuszeng@tencent.com>
> 
> Coverity complains of a possible NULL dereference:
> 
> in of_select_probe_type():
> 1. returned_null: of_match_device() returns NULL.
> 2. var_assigned: match = NULL return value from of_match_device()
> 309	match = of_match_device(of_flash_match, &dev->dev);
> 
> 3.dereference: Dereferencing the NULL pointer match.
> 310	probe_type = match->data;
> 
> Signed-off-by: Zeng Jingxiang <linuszeng@tencent.com>

Applied to https://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git mtd/next, thanks.

Miquel