diff options
author | Ranjani Sridharan <ranjani.sridharan@linux.intel.com> | 2021-02-01 11:31:28 +0200 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2021-02-01 13:18:58 +0000 |
commit | 941d3f0d7e9ffcbee1efeb6f07fa5fc5ef8347ff (patch) | |
tree | a1a35290c9989035373777499230de9206ea5472 /sound/soc | |
parent | 0084364d9678e9d722ee620ed916f2f9954abdbf (diff) | |
download | linux-941d3f0d7e9ffcbee1efeb6f07fa5fc5ef8347ff.tar.bz2 |
ASoC: SOF: topology: Prevent NULL pointer dereference with no TLV
When there is no TLV data in topology, extracting the TLV data
could result in a NULL pointer exception. Prevent this by making
sure that the TLV data exists before extracting it.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Reviewed-by: Paul Olaru <paul.olaru@oss.nxp.com>
Reviewed-by: Bard Liao <bard.liao@intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20210201093128.1226603-1-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc')
-rw-r--r-- | sound/soc/sof/topology.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c index 59f89f3d61a2..480cf75a7575 100644 --- a/sound/soc/sof/topology.c +++ b/sound/soc/sof/topology.c @@ -1073,7 +1073,7 @@ static int sof_control_load_volume(struct snd_soc_component *scomp, scontrol->cmd = SOF_CTRL_CMD_VOLUME; /* extract tlv data */ - if (get_tlv_data(kc->tlv.p, tlv) < 0) { + if (!kc->tlv.p || get_tlv_data(kc->tlv.p, tlv) < 0) { dev_err(scomp->dev, "error: invalid TLV data\n"); ret = -EINVAL; goto out_free; |