apparmor: Fix internal policy capable check for policy management
authorJohn Johansen <john.johansen@canonical.com>
Sat, 3 Apr 2021 18:07:37 +0000 (11:07 -0700)
committerJohn Johansen <john.johansen@canonical.com>
Mon, 1 Nov 2021 20:05:40 +0000 (13:05 -0700)
The check was incorrectly treating a returned error as a boolean.

Fixes: 31ec99e13346 ("apparmor: switch to apparmor to internal capable check for policy management")
Signed-off-by: John Johansen <john.johansen@canonical.com>
security/apparmor/policy.c

index 9ce9396..4da4f3d 100644 (file)
@@ -678,7 +678,7 @@ bool aa_policy_view_capable(struct aa_label *label, struct aa_ns *ns)
 bool aa_policy_admin_capable(struct aa_label *label, struct aa_ns *ns)
 {
        struct user_namespace *user_ns = current_user_ns();
-       bool capable = policy_ns_capable(label, user_ns, CAP_MAC_ADMIN);
+       bool capable = policy_ns_capable(label, user_ns, CAP_MAC_ADMIN) == 0;
 
        AA_DEBUG("cap_mac_admin? %d\n", capable);
        AA_DEBUG("policy locked? %d\n", aa_g_lock_policy);