From b9e306af638e11aa3b176064c327fa88e94f9f1e Mon Sep 17 00:00:00 2001 From: Vatsal Bucha Date: Fri, 1 Jun 2018 12:17:49 +0530 Subject: [PATCH] ASoC: qdsp6v2: Fix null pointer dereference for prtd pointer Private data pointer may not be initialized before access it in adsp_stream_cmd_put. NULL check for prtd avoids the issue. CRs-Fixed: 2252497 Change-Id: Ibd888be601d5b42ed4f4644ed22596a26b61f8fe Signed-off-by: Vatsal Bucha --- sound/soc/msm/qdsp6v2/msm-pcm-q6-v2.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sound/soc/msm/qdsp6v2/msm-pcm-q6-v2.c b/sound/soc/msm/qdsp6v2/msm-pcm-q6-v2.c index 9ab17d87b268..c05f487d00fa 100644 --- a/sound/soc/msm/qdsp6v2/msm-pcm-q6-v2.c +++ b/sound/soc/msm/qdsp6v2/msm-pcm-q6-v2.c @@ -660,6 +660,7 @@ static int msm_pcm_open(struct snd_pcm_substream *substream) if (!prtd->audio_client) { pr_info("%s: Could not allocate memory\n", __func__); kfree(prtd); + prtd = NULL; return -ENOMEM; } @@ -1135,6 +1136,12 @@ static int msm_pcm_adsp_stream_cmd_put(struct snd_kcontrol *kcontrol, } prtd = substream->runtime->private_data; + if (prtd == NULL) { + pr_err("%s prtd is null.\n", __func__); + ret = -EINVAL; + goto done; + } + if (prtd->audio_client == NULL) { pr_err("%s prtd is null.\n", __func__); ret = -EINVAL;