summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhao Dongdong <zhaodongdong@kylinos.cn>2026-06-10 10:20:43 +0300
committerMark Brown <broonie@kernel.org>2026-06-11 23:41:33 +0300
commitd46f9f23897261da53ffbeb89d48a13982ba7d28 (patch)
tree2ce229a7bfa783067d79d7d24dab4733f55ba843
parentf07dde7074252653a17905b45bf92150029a47ae (diff)
downloadlinux-d46f9f23897261da53ffbeb89d48a13982ba7d28.tar.xz
ASoC: SOF: topology: fix memory leak in snd_sof_load_topology
When the topology filename contains "dummy" and tplg_cnt is 0, the function returns -EINVAL directly without freeing the tplg_files allocated by kcalloc() at line 2497. This leaks memory on every such topology load attempt. Fix this by setting ret = -EINVAL and jumping to the out: label, which already handles the kfree(tplg_files) cleanup. Fixes: 99c159279c6d ("ASoC: SOF: don't check the existence of dummy topology") Cc: stable@vger.kernel.org Signed-off-by: Zhao Dongdong <zhaodongdong@kylinos.cn> Acked-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> Link: https://patch.msgid.link/tencent_3EED6D778DC52C3703A2D1EE8119372E8E08@qq.com Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r--sound/soc/sof/topology.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c
index bb6b981e55d1..42a2d90bb705 100644
--- a/sound/soc/sof/topology.c
+++ b/sound/soc/sof/topology.c
@@ -2551,6 +2551,8 @@ int snd_sof_load_topology(struct snd_soc_component *scomp, const char *file)
if (strstr(file, "dummy")) {
dev_err(scomp->dev,
"Function topology is required, please upgrade sof-firmware\n");
+
+ kfree(tplg_files);
return -EINVAL;
}
tplg_files[0] = file;