summaryrefslogtreecommitdiffstats
path: root/sound/soc/intel/skylake/skl-topology.c
diff options
context:
space:
mode:
authorJeeja KP2015-11-13 14:52:11 +0100
committerMark Brown2015-11-18 19:46:36 +0100
commit0ed95d769c8d6c1030dd9f94cf6fb2a6ed98a4ce (patch)
tree194361780c8738faf0fc93abc7cfca51c8bc37b2 /sound/soc/intel/skylake/skl-topology.c
parentASoC: Intel: Skylake: Fix CLDMA buffer wrap case (diff)
downloadkernel-qcow2-linux-0ed95d769c8d6c1030dd9f94cf6fb2a6ed98a4ce.tar.gz
kernel-qcow2-linux-0ed95d769c8d6c1030dd9f94cf6fb2a6ed98a4ce.tar.xz
kernel-qcow2-linux-0ed95d769c8d6c1030dd9f94cf6fb2a6ed98a4ce.zip
ASoC: Intel: Skylake: Fix null ptr dereferenced in skl_tplg_bind_sinks
This patch fixes the below warning form smatch and makes the skl_tplg_bind_sinks take the next sink as argument which is true when the current sink is valid sound/soc/intel/skylake/skl-topology.c:453 skl_tplg_bind_sinks() error: we previously assumed 'sink' could be null (see line 452) sound/soc/intel/skylake/skl-topology.c 451 452 if (!sink) ^^^^ New check. Reversed? 453 return skl_tplg_bind_sinks(sink, skl, src_mconfig); ^^^^ This is dereferenced inside the function. 454 455 return 0; Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Jeeja KP <jeeja.kp@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/intel/skylake/skl-topology.c')
-rw-r--r--sound/soc/intel/skylake/skl-topology.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sound/soc/intel/skylake/skl-topology.c b/sound/soc/intel/skylake/skl-topology.c
index 2b6ee22b5ea2..0937ea2129c1 100644
--- a/sound/soc/intel/skylake/skl-topology.c
+++ b/sound/soc/intel/skylake/skl-topology.c
@@ -408,7 +408,7 @@ static int skl_tplg_bind_sinks(struct snd_soc_dapm_widget *w,
struct skl_module_cfg *src_mconfig)
{
struct snd_soc_dapm_path *p;
- struct snd_soc_dapm_widget *sink = NULL;
+ struct snd_soc_dapm_widget *sink = NULL, *next_sink = NULL;
struct skl_module_cfg *sink_mconfig;
struct skl_sst *ctx = skl->skl_sst;
int ret;
@@ -420,7 +420,7 @@ static int skl_tplg_bind_sinks(struct snd_soc_dapm_widget *w,
dev_dbg(ctx->dev, "%s: src widget=%s\n", __func__, w->name);
dev_dbg(ctx->dev, "%s: sink widget=%s\n", __func__, p->sink->name);
- sink = p->sink;
+ next_sink = p->sink;
/*
* here we will check widgets in sink pipelines, so that
* can be any widgets type and we are only interested if
@@ -450,7 +450,7 @@ static int skl_tplg_bind_sinks(struct snd_soc_dapm_widget *w,
}
if (!sink)
- return skl_tplg_bind_sinks(sink, skl, src_mconfig);
+ return skl_tplg_bind_sinks(next_sink, skl, src_mconfig);
return 0;
}