summaryrefslogtreecommitdiff
path: root/src/shared/condition.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2022-08-29 11:11:10 +0200
committerLennart Poettering <lennart@poettering.net>2022-08-31 17:31:28 +0200
commit7fd0fb02a1303579f15ccfa987d64a04b2f18d72 (patch)
treef56963d5fa02056ce994eedae89486aa4edf562e /src/shared/condition.c
parent6eeadaa141733cfa5294b0f3ad1420c845c32663 (diff)
downloadsystemd-7fd0fb02a1303579f15ccfa987d64a04b2f18d72.tar.gz
condition: properly handle fnmatch() errors in ConditionHost
Diffstat (limited to 'src/shared/condition.c')
-rw-r--r--src/shared/condition.c8
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) {