From: Lennart Poettering Date: Mon, 29 Aug 2022 09:08:18 +0000 (+0200) Subject: compare: propagate errors of fnmatch() as errors X-Git-Tag: v252-rc1~273^2~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5f6b2d394b4e2d9dbad16e386d6bd9083ea40393;p=thirdparty%2Fsystemd.git compare: propagate errors of fnmatch() as errors --- diff --git a/src/shared/compare-operator.c b/src/shared/compare-operator.c index 694c778a271..e9c7cc9b2b2 100644 --- a/src/shared/compare-operator.c +++ b/src/shared/compare-operator.c @@ -90,6 +90,7 @@ int version_or_fnmatch_compare( CompareOperator op, const char *a, const char *b) { + int r; switch (op) { @@ -100,10 +101,14 @@ int version_or_fnmatch_compare( return !streq_ptr(a, b); case COMPARE_FNMATCH_EQUAL: - return fnmatch(b, a, 0) != FNM_NOMATCH; + r = fnmatch(b, a, 0); + return r == 0 ? true : + r == FNM_NOMATCH ? false : -EINVAL; case COMPARE_FNMATCH_UNEQUAL: - return fnmatch(b, a, 0) == FNM_NOMATCH; + r = fnmatch(b, a, 0); + return r == FNM_NOMATCH ? true: + r == 0 ? false : -EINVAL; case _COMPARE_OPERATOR_ORDER_FIRST..._COMPARE_OPERATOR_ORDER_LAST: return test_order(strverscmp_improved(a, b), op);