We have to kfree(routes) on this error path.
Fixes: ff9226224437 ("ASoC: topology: Change allocations to resource managed")
Signed-off-by: Dan Carpenter <redacted>
---
sound/soc/soc-topology.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/sound/soc/soc-topology.c b/sound/soc/soc-topology.c
index 6b7a813bc264..5730fcaa7bc6 100644
--- a/sound/soc/soc-topology.c
+++ b/sound/soc/soc-topology.c
@@ -1135,8 +1135,10 @@ static int soc_tplg_dapm_graph_elems_load(struct soc_tplg *tplg,
*/
for (i = 0; i < count; i++) {
routes[i] = devm_kzalloc(tplg->dev, sizeof(*routes[i]), GFP_KERNEL);
- if (!routes[i])
- return -ENOMEM;
+ if (!routes[i]) {
+ ret = -ENOMEM;
+ goto free_routes;
+ }
}
for (i = 0; i < count; i++) {@@ -1198,6 +1200,7 @@ static int soc_tplg_dapm_graph_elems_load(struct soc_tplg *tplg,
* The memory allocated for each dapm route will be freed
* when it is removed in remove_route().
*/
+free_routes:
kfree(routes);
return ret;
--
2.30.2