diff options
author | Lennart Poettering <lennart@poettering.net> | 2022-08-29 11:11:10 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2022-08-31 17:31:28 +0200 |
commit | 7fd0fb02a1303579f15ccfa987d64a04b2f18d72 (patch) | |
tree | f56963d5fa02056ce994eedae89486aa4edf562e /src/shared/condition.c | |
parent | 6eeadaa141733cfa5294b0f3ad1420c845c32663 (diff) | |
download | systemd-7fd0fb02a1303579f15ccfa987d64a04b2f18d72.tar.gz |
condition: properly handle fnmatch() errors in ConditionHost
Diffstat (limited to 'src/shared/condition.c')
-rw-r--r-- | src/shared/condition.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/shared/condition.c b/src/shared/condition.c index 27a0a465be..00d732e6ef 100644 --- a/src/shared/condition.c +++ b/src/shared/condition.c @@ -716,7 +716,13 @@ static int condition_test_host(Condition *c, char **env) { if (!h) return -ENOMEM; - return fnmatch(c->parameter, h, FNM_CASEFOLD) == 0; + r = fnmatch(c->parameter, h, FNM_CASEFOLD); + if (r == FNM_NOMATCH) + return false; + if (r != 0) + return log_debug_errno(SYNTHETIC_ERRNO(EINVAL), "fnmatch() failed."); + + return true; } static int condition_test_ac_power(Condition *c, char **env) { |