From 98415d26ddfca5f9329ec1d294b8af0dcd01508a Mon Sep 17 00:00:00 2001 From: Huang Yunxuan Date: Wed, 18 Mar 2026 22:36:24 +0800 Subject: [PATCH] ucm: fix optional include The path is not an absolute path and can't be used with `access()`. Let's call `uc_mgr_config_load_file()` directly and mask acceptable error numbers. Signed-off-by: Huang Yunxuan --- src/ucm/ucm_include.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/ucm/ucm_include.c b/src/ucm/ucm_include.c index b155a086..8a47e748 100644 --- a/src/ucm/ucm_include.c +++ b/src/ucm/ucm_include.c @@ -90,11 +90,10 @@ static int include_eval_one(snd_use_case_mgr_t *uc_mgr, err = uc_mgr_get_substituted_value(uc_mgr, &s, file); if (err < 0) return err; - if (opt_bool && access(s, R_OK) != 0) { - snd_trace(UCM, "optional file '%s' not found", s); + err = uc_mgr_config_load_file(uc_mgr, s, result); + if (opt_bool && (err == -ENOENT || err == -EACCES)) { + snd_trace(UCM, "optional file '%s' not found or readable", s); err = 0; - } else { - err = uc_mgr_config_load_file(uc_mgr, s, result); } free(s); return err;