diff options
author | Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> | 2020-05-15 23:15:30 +0200 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2020-05-18 13:38:29 +0200 |
commit | 07b542fe831cbefce163ad1b3aa7292c8a6332b8 (patch) | |
tree | b976969b8e31e151544c9d1e207324c0fbaf9d67 /sound/soc/codecs/rt1308-sdw.c | |
parent | ASoC: codecs: rt*-sdw: don't assign slave_ops (diff) | |
download | linux-07b542fe831cbefce163ad1b3aa7292c8a6332b8.tar.xz linux-07b542fe831cbefce163ad1b3aa7292c8a6332b8.zip |
ASoC: codecs: rt*-sdw: fix memory leak in set_sdw_stream()
Now that the sdw_stream is allocated in machine driver,
set_sdw_stream() is also called with a NULL argument during the
dailink shutdown.
In this case, the drivers should not allocate any memory, and just
return.
Detected with KASAN/kmemleak.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@intel.com>
Cc: Oder Chiou <oder_chiou@realtek.com>
Cc: Shuming Fan <shumingf@realtek.com>
Cc: Jack Yu <jack.yu@realtek.com>
Link: https://lore.kernel.org/r/20200515211531.11416-3-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/codecs/rt1308-sdw.c')
-rw-r--r-- | sound/soc/codecs/rt1308-sdw.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sound/soc/codecs/rt1308-sdw.c b/sound/soc/codecs/rt1308-sdw.c index 4b88fa8efb27..91cc5a15c211 100644 --- a/sound/soc/codecs/rt1308-sdw.c +++ b/sound/soc/codecs/rt1308-sdw.c @@ -482,6 +482,9 @@ static int rt1308_set_sdw_stream(struct snd_soc_dai *dai, void *sdw_stream, { struct sdw_stream_data *stream; + if (!sdw_stream) + return 0; + stream = kzalloc(sizeof(*stream), GFP_KERNEL); if (!stream) return -ENOMEM; |