X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fshared%2Fcondition.c;h=4faca2b8dceb232b4098492345a541fcb6d86f37;hb=cdda4aa8d20c2679cc937d40e793abe7806f17cb;hp=c5a3caa4dbbe2b0e318d0bcf1850da70a433e042;hpb=f32d2db140150b9d38684a699c9875b6e24ca27c;p=elogind.git diff --git a/src/shared/condition.c b/src/shared/condition.c index c5a3caa4d..4faca2b8d 100644 --- a/src/shared/condition.c +++ b/src/shared/condition.c @@ -31,15 +31,14 @@ #include "virt.h" #include "path-util.h" #include "fileio.h" -#include "unit.h" #include "architecture.h" -#include "virt.h" #include "smack-util.h" #include "apparmor-util.h" #include "ima-util.h" #include "selinux-util.h" #include "audit.h" #include "condition.h" +#include "cap-list.h" Condition* condition_new(ConditionType type, const char *parameter, bool trigger, bool negate) { Condition *c; @@ -73,11 +72,13 @@ void condition_free(Condition *c) { free(c); } -void condition_free_list(Condition *first) { +Condition* condition_free_list(Condition *first) { Condition *c, *n; LIST_FOREACH_SAFE(conditions, c, n, first) condition_free(c); + + return NULL; } static int condition_test_kernel_command_line(Condition *c) { @@ -236,7 +237,7 @@ static int condition_test_security(Condition *c) { static int condition_test_capability(Condition *c) { _cleanup_fclose_ FILE *f = NULL; - cap_value_t value; + int value; char line[LINE_MAX]; unsigned long long capabilities = -1; @@ -245,8 +246,8 @@ static int condition_test_capability(Condition *c) { assert(c->type == CONDITION_CAPABILITY); /* If it's an invalid capability, we don't have it */ - - if (cap_from_name(c->parameter, &value) < 0) + value = capability_from_name(c->parameter); + if (value < 0) return -EINVAL; /* If it's a valid capability we default to assume