diff mbox series

[1/2] ASoC: topology: Fix memleak in soc_tplg_link_elems_load()

Message ID 20200207185325.22320-2-dragos_tarcatu@mentor.com (mailing list archive)
State Accepted
Commit 2b2d5c4db732c027a14987cfccf767dac1b45170
Headers show
Series ASoC: topology: Fix memory leaks with ABI version mismatch | expand

Commit Message

Dragos Tarcatu Feb. 7, 2020, 6:53 p.m. UTC
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>
---
 sound/soc/soc-topology.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/sound/soc/soc-topology.c b/sound/soc/soc-topology.c
index d2ee6ad20e83..69069f70e745 100644
--- a/sound/soc/soc-topology.c
+++ b/sound/soc/soc-topology.c
@@ -2377,8 +2377,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