diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/core/condition.c | 7 | ||||
-rw-r--r-- | src/shared/condition-util.c | 8 |
2 files changed, 5 insertions, 10 deletions
diff --git a/src/core/condition.c b/src/core/condition.c index 24684580a8..833bcdf302 100644 --- a/src/core/condition.c +++ b/src/core/condition.c @@ -27,7 +27,7 @@ #include <sys/statvfs.h> #include <fnmatch.h> -#include <systemd/sd-id128.h> +#include "sd-id128.h" #include "util.h" #include "condition.h" #include "virt.h" @@ -52,12 +52,13 @@ static bool condition_test_security(Condition *c) { return use_ima() == !c->negate; if (streq(c->parameter, "smack")) return use_smack() == !c->negate; + return c->negate; } static bool condition_test_capability(Condition *c) { + _cleanup_fclose_ FILE *f = NULL; cap_value_t value; - FILE *f; char line[LINE_MAX]; unsigned long long capabilities = -1; @@ -86,8 +87,6 @@ static bool condition_test_capability(Condition *c) { } } - fclose(f); - return !!(capabilities & (1ULL << value)) == !c->negate; } diff --git a/src/shared/condition-util.c b/src/shared/condition-util.c index 9961cb47f0..1c7d1f6a5e 100644 --- a/src/shared/condition-util.c +++ b/src/shared/condition-util.c @@ -177,10 +177,9 @@ bool condition_test_architecture(Condition *c) { } bool condition_test_host(Condition *c) { + _cleanup_free_ char *h = NULL; sd_id128_t x, y; - char *h; int r; - bool b; assert(c); assert(c->parameter); @@ -199,10 +198,7 @@ bool condition_test_host(Condition *c) { if (!h) return c->negate; - b = fnmatch(c->parameter, h, FNM_CASEFOLD) == 0; - free(h); - - return b == !c->negate; + return (fnmatch(c->parameter, h, FNM_CASEFOLD) == 0) == !c->negate; } bool condition_test_ac_power(Condition *c) { |