diff options
author | Jaroslav Kysela <perex@perex.cz> | 2022-07-08 21:56:57 +0200 |
---|---|---|
committer | Jaroslav Kysela <perex@perex.cz> | 2022-07-08 21:56:57 +0200 |
commit | fc86eafa086684c0bebec0ee67ccbcef315ce9d5 (patch) | |
tree | f7db3b16c40c15356d3d16a1914f11da605cfa9a | |
parent | 378c6a9215ea52eb453a9da8f2632eadcb046c72 (diff) | |
download | alsa-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.c | 2 | ||||
-rw-r--r-- | src/ucm/parser.c | 10 |
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: |