1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2025-02-04 17:47:03 +03:00

compare: propagate errors of fnmatch() as errors

This commit is contained in:
Lennart Poettering 2022-08-29 11:08:18 +02:00
parent 2e8fa6274d
commit 5f6b2d394b

View File

@ -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);