summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaroslav Kysela <perex@perex.cz>2022-05-23 13:29:36 +0200
committerJaroslav Kysela <perex@perex.cz>2022-05-23 13:29:39 +0200
commit7474518a96bbfad284f68b9267470f4252fa3f78 (patch)
tree2ce770afcc67bc9222c62cb3606e807a40e5ebe5
parent7f2d6c3aac3505ceee4b0d3e8b3ca423ce29b070 (diff)
downloadalsa-lib-7474518a96bbfad284f68b9267470f4252fa3f78.tar.gz
ucm: fix memory leak in the error path (Include)
The included configuration tree must be freed in the error path, too. Signed-off-by: Jaroslav Kysela <perex@perex.cz>
-rw-r--r--src/ucm/ucm_include.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/ucm/ucm_include.c b/src/ucm/ucm_include.c
index 0b55890e..7def2d31 100644
--- a/src/ucm/ucm_include.c
+++ b/src/ucm/ucm_include.c
@@ -305,13 +305,14 @@ int uc_mgr_evaluate_include(snd_use_case_mgr_t *uc_mgr,
if (a == NULL)
continue;
err = uc_mgr_evaluate_inplace(uc_mgr, a);
- if (err < 0)
+ if (err < 0) {
+ snd_config_delete(a);
return err;
+ }
err = uc_mgr_config_tree_merge(uc_mgr, parent, a, before, after);
+ snd_config_delete(a);
if (err < 0)
return err;
- snd_config_delete(a);
-
}
return 0;
}