Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1568156 > unrolled thread

[PATCH] sound: soc: davinci - Fix possible NULL derefrence.

Started byShailendra Verma <shailendra.v@samsung.com>
First post2017-01-27 12:30 +0100
Last post2017-01-27 14:10 +0100
Articles 3 — 2 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  [PATCH] sound: soc: davinci - Fix possible NULL derefrence. Shailendra Verma <shailendra.v@samsung.com> - 2017-01-27 12:30 +0100
    Re: [PATCH] sound: soc: davinci - Fix possible NULL derefrence. Mark Brown <broonie@kernel.org> - 2017-01-27 13:40 +0100
    Re: [PATCH] sound: soc: davinci - Fix possible NULL derefrence. Mark Brown <broonie@kernel.org> - 2017-01-27 14:10 +0100

#1568156 — [PATCH] sound: soc: davinci - Fix possible NULL derefrence.

FromShailendra Verma <shailendra.v@samsung.com>
Date2017-01-27 12:30 +0100
Subject[PATCH] sound: soc: davinci - Fix possible NULL derefrence.
Message-ID<t4cT8-3sv-13@gated-at.bofh.it>
of_match_device could return NULL, and so can cause a NULL
pointer dereference later.

Signed-off-by: Shailendra Verma <shailendra.v@samsung.com>
---
 sound/soc/davinci/davinci-evm.c |   13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/sound/soc/davinci/davinci-evm.c b/sound/soc/davinci/davinci-evm.c
index 731fb0d..7a369e0 100644
--- a/sound/soc/davinci/davinci-evm.c
+++ b/sound/soc/davinci/davinci-evm.c
@@ -358,13 +358,20 @@ static int evm_aic3x_init(struct snd_soc_pcm_runtime *rtd)
 static int davinci_evm_probe(struct platform_device *pdev)
 {
 	struct device_node *np = pdev->dev.of_node;
-	const struct of_device_id *match =
-		of_match_device(of_match_ptr(davinci_evm_dt_ids), &pdev->dev);
-	struct snd_soc_dai_link *dai = (struct snd_soc_dai_link *) match->data;
+	const struct of_device_id *match;
+	struct snd_soc_dai_link *dai;
 	struct snd_soc_card_drvdata_davinci *drvdata = NULL;
 	struct clk *mclk;
 	int ret = 0;
 
+	match = of_match_device(of_match_ptr(davinci_evm_dt_ids), &pdev->dev);
+	if (!match) {
+		dev_err(&pdev->dev, "Error: No device match found\n");
+		return -ENODEV;
+	}
+
+	dai = (struct snd_soc_dai_link *) match->data;
+
 	evm_soc_card.dai_link = dai;
 
 	dai->codec_of_node = of_parse_phandle(np, "ti,audio-codec", 0);
-- 
1.7.9.5

[toc] | [next] | [standalone]


#1568333

FromMark Brown <broonie@kernel.org>
Date2017-01-27 13:40 +0100
Message-ID<t4dYR-49I-23@gated-at.bofh.it>
In reply to#1568156

[Multipart message — attachments visible in raw view] — view raw

On Fri, Jan 27, 2017 at 04:40:57PM +0530, Shailendra Verma wrote:
> of_match_device could return NULL, and so can cause a NULL
> pointer dereference later.

It would be worth explaining how the device can instantiate with no
match...

[toc] | [prev] | [next] | [standalone]


#1568343

FromMark Brown <broonie@kernel.org>
Date2017-01-27 14:10 +0100
Message-ID<t4erU-4yD-21@gated-at.bofh.it>
In reply to#1568156

[Multipart message — attachments visible in raw view] — view raw

On Fri, Jan 27, 2017 at 04:40:57PM +0530, Shailendra Verma wrote:
> of_match_device could return NULL, and so can cause a NULL
> pointer dereference later.

Oh, and:

Please submit patches using subject lines reflecting the style for the
subsystem.  This makes it easier for people to identify relevant
patches.  Look at what existing commits in the area you're changing are
doing and make sure your subject lines visually resemble what they're
doing.

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web