summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDragos Tarcatu <dragos_tarcatu@mentor.com>2020-02-07 21:53:24 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-03-11 16:15:07 +0300
commita7d675643ed8902f0a702d1dbe6ec4f9ec9b546c (patch)
treee0524ae397a6312435040a87740eb959e4789e06
parent9a51f2ef088969e1a6ef8fc9dbe3187f78921d5c (diff)
downloadlinux-a7d675643ed8902f0a702d1dbe6ec4f9ec9b546c.tar.xz
ASoC: topology: Fix memleak in soc_tplg_link_elems_load()
commit 2b2d5c4db732c027a14987cfccf767dac1b45170 upstream. If soc_tplg_link_config() fails, _link needs to be freed in case of topology ABI version mismatch. However the current code is returning directly and ends up leaking memory in this case. This patch fixes that. Fixes: 593d9e52f9bb ("ASoC: topology: Add support to configure existing physical DAI links") Signed-off-by: Dragos Tarcatu <dragos_tarcatu@mentor.com> Link: https://lore.kernel.org/r/20200207185325.22320-2-dragos_tarcatu@mentor.com Signed-off-by: Mark Brown <broonie@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--sound/soc/soc-topology.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sound/soc/soc-topology.c b/sound/soc/soc-topology.c
index 069f38fbf07b..c56cdeb10601 100644
--- a/sound/soc/soc-topology.c
+++ b/sound/soc/soc-topology.c
@@ -2154,8 +2154,11 @@ static int soc_tplg_link_elems_load(struct soc_tplg *tplg,
}
ret = soc_tplg_link_config(tplg, _link);
- if (ret < 0)
+ if (ret < 0) {
+ if (!abi_match)
+ kfree(_link);
return ret;
+ }
/* offset by version-specific struct size and
* real priv data size