summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaroslav Kysela <perex@perex.cz>2022-07-08 21:56:57 +0200
committerJaroslav Kysela <perex@perex.cz>2022-07-08 21:56:57 +0200
commitfc86eafa086684c0bebec0ee67ccbcef315ce9d5 (patch)
treef7db3b16c40c15356d3d16a1914f11da605cfa9a
parent378c6a9215ea52eb453a9da8f2632eadcb046c72 (diff)
downloadalsa-lib-fc86eafa086684c0bebec0ee67ccbcef315ce9d5.tar.gz
ucm: fix few memory-leaks in the error paths
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
-rw-r--r--src/ucm/main.c2
-rw-r--r--src/ucm/parser.c10
2 files changed, 6 insertions, 6 deletions
diff --git a/src/ucm/main.c b/src/ucm/main.c
index 58ed49dd..ed6d1c94 100644
--- a/src/ucm/main.c
+++ b/src/ucm/main.c
@@ -1481,8 +1481,8 @@ const char *parse_open_variables(snd_use_case_mgr_t *uc_mgr, const char *name)
goto skip;
}
- snd_config_delete(cfg);
skip:
+ snd_config_delete(cfg);
return end + 3;
}
diff --git a/src/ucm/parser.c b/src/ucm/parser.c
index 976aa8be..9e62fa9f 100644
--- a/src/ucm/parser.c
+++ b/src/ucm/parser.c
@@ -415,15 +415,15 @@ static int evaluate_macro1(snd_use_case_mgr_t *uc_mgr,
n = snd_config_iterator_entry(i);
err = snd_config_get_id(n, &id);
if (err < 0)
- return err;
+ goto __err_path;
err = snd_config_get_ascii(n, &var);
if (err < 0)
- return err;
+ goto __err_path;
snprintf(name, sizeof(name), "__%s", id);
err = uc_mgr_set_variable(uc_mgr, name, var);
free(var);
if (err < 0)
- return err;
+ goto __err_path;
}
/* merge + substitute variables */
@@ -443,11 +443,11 @@ static int evaluate_macro1(snd_use_case_mgr_t *uc_mgr,
n = snd_config_iterator_entry(i);
err = snd_config_get_id(n, &id);
if (err < 0)
- return err;
+ goto __err_path;
snprintf(name, sizeof(name), "__%s", id);
err = uc_mgr_delete_variable(uc_mgr, name);
if (err < 0)
- return err;
+ goto __err_path;
}
__err_path: