Skip to contentSkip to conversation

drm/tegra: vic: add NULL check on of_match_device() return value

PATCH In review Gustavo A. R. Silva 2 participants 3 messages Jul 7, 2017 – Jul 10, 2017

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 drm/tegra: vic: add NULL check on of_match_device() return value

Check return value from call to of_match_device()
in order to prevent a NULL pointer dereference.

In case of NULL print error message and return.

---
 drivers/gpu/drm/tegra/vic.c | 5 +++++
 1 file changed, 5 insertions(+)
drivers/gpu/drm/tegra/vic.c +5 -0
index 47cb1aa..7e11825 100644
@@ -283,6 +283,11 @@ static int vic_probe(struct platform_device *pdev)
 	int err;
 
 	match = of_match_device(vic_match, dev);
+	if (!match) {
+		dev_err(&pdev->dev, "failed to match device\n");
+		return -ENODEV;
+	}
+
 	vic_config = (struct vic_config *)match->data;
 
 	vic = devm_kzalloc(dev, sizeof(*vic), GFP_KERNEL);
Signature · 1 line
2.5.0
#1 lore raw
Quoted 15 lines · Gustavo A. R. Silva

Check return value from call to of_match_device()
in order to prevent a NULL pointer dereference.

In case of NULL print error message and return.

---
 drivers/gpu/drm/tegra/vic.c | 5 +++++
 1 file changed, 5 insertions(+)
drivers/gpu/drm/tegra/vic.c +0 -0
index 47cb1aa..7e11825 100644

drivers/gpu/drm/tegra/vic.c static int vic_probe(struct platform_device *pdev) · line 289

Quoted 7 lines
drivers/gpu/drm/tegra/vic.c +4 -0
@@ -283,6 +283,11 @@ static int vic_probe(struct platform_device *pdev)
 	int err;
 
 	match = of_match_device(vic_match, dev);
+	if (!match) {
+		dev_err(&pdev->dev, "failed to match device\n");
+		return -ENODEV;
+	}

Someone would have to go to great lengths to trigger this condition, might as well let it crash as a warning that they've done something wrong.

Thierry

#2 lore raw

Hi Thierry,

Quoting Thierry Reding <[email protected]>:

Quoted 18 lines · Gustavo A. R. Silva
Quoted 17 lines

Check return value from call to of_match_device()
in order to prevent a NULL pointer dereference.

In case of NULL print error message and return.

---
 drivers/gpu/drm/tegra/vic.c | 5 +++++
 1 file changed, 5 insertions(+)
drivers/gpu/drm/tegra/vic.c +0 -0
index 47cb1aa..7e11825 100644
@@ -283,6 +283,11 @@ static int vic_probe(struct platform_device *pdev)
 	int err;
 
Quoted 10 lines

drivers/gpu/drm/tegra/vic.c static int vic_probe(struct platform_device *pdev) · line 289

Quoted 5 lines
drivers/gpu/drm/tegra/vic.c +4 -0
 	match = of_match_device(vic_match, dev);
+	if (!match) {
+		dev_err(&pdev->dev, "failed to match device\n");
+		return -ENODEV;
+	}

Someone would have to go to great lengths to trigger this condition, might as well let it crash as a warning that they've done something wrong.

Thanks for clarifying.
--
Gustavo A. R. Silva