We have to kfree(routes) on this error path.
Fixes: ff9226224437 ("ASoC: topology: Change allocations to resource managed") Signed-off-by: Dan Carpenter dan.carpenter@oracle.com --- 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;