From 5f6b2d394b4e2d9dbad16e386d6bd9083ea40393 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 29 Aug 2022 11:08:18 +0200 Subject: [PATCH] compare: propagate errors of fnmatch() as errors --- src/shared/compare-operator.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) 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); -- 2.47.3