[PATCH] ASoC: SOF: topology: fix memory leak in snd_sof_load_topology

From: Zhao Dongdong

Date: Tue Jun 09 2026 - 23:13:28 EST


From: Zhao Dongdong <zhaodongdong@xxxxxxxxxx>

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@xxxxxxxxxxxxxxx
Signed-off-by: Zhao Dongdong <zhaodongdong@xxxxxxxxxx>
---
sound/soc/sof/topology.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c
index 63d582c65891..09d6dc01814c 100644
--- a/sound/soc/sof/topology.c
+++ b/sound/soc/sof/topology.c
@@ -2534,7 +2534,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");
- return -EINVAL;
+ ret = -EINVAL;
+ goto out;
}
tplg_files[0] = file;
tplg_cnt = 1;
--
2.25.1