From c6cd83bd0afe4ae0e5a64af51b87e9bc51f40563 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Wed, 24 Apr 2024 15:15:48 +0200 Subject: [PATCH] ucm: raise error when macro argument is already defined (used) Link: https://github.com/alsa-project/alsa-ucm-conf/pull/411 Signed-off-by: Jaroslav Kysela --- src/ucm/parser.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/ucm/parser.c b/src/ucm/parser.c index 7da8060a..02f01a10 100644 --- a/src/ucm/parser.c +++ b/src/ucm/parser.c @@ -446,13 +446,17 @@ static int evaluate_macro1(snd_use_case_mgr_t *uc_mgr, err = snd_config_get_id(n, &id); if (err < 0) goto __err_path; + snprintf(name, sizeof(name), "__%s", id); + if (uc_mgr_get_variable(uc_mgr, name)) { + uc_error("Macro argument '%s' is already defined", name); + goto __err_path; + } err = snd_config_get_ascii(n, &var); if (err < 0) goto __err_path; err = uc_mgr_get_substituted_value(uc_mgr, &var2, var); free(var); if (err >= 0) { - snprintf(name, sizeof(name), "__%s", id); err = uc_mgr_set_variable(uc_mgr, name, var2); free(var2); } -- 2.47.1