landlock: Simplify current_check_access_socket()
authorMickaël Salaün <mic@digikod.net>
Thu, 7 Mar 2024 09:39:22 +0000 (10:39 +0100)
committerMickaël Salaün <mic@digikod.net>
Fri, 8 Mar 2024 17:22:13 +0000 (18:22 +0100)
Remove the handled_access variable in current_check_access_socket() and
update access_request instead.  One up-to-date variable avoids picking
the wrong one.

Cc: Konstantin Meskhidze <konstantin.meskhidze@huawei.com>
Link: https://lore.kernel.org/r/20240307093923.1466071-1-mic@digikod.net
Signed-off-by: Mickaël Salaün <mic@digikod.net>
security/landlock/net.c

index efa1b644a4afafb15b4b5664c299e9c38e215f03..c8bcd29bde0955187b45874ddcbcd4b83afd341a 100644 (file)
@@ -64,12 +64,11 @@ static const struct landlock_ruleset *get_current_net_domain(void)
 static int current_check_access_socket(struct socket *const sock,
                                       struct sockaddr *const address,
                                       const int addrlen,
-                                      const access_mask_t access_request)
+                                      access_mask_t access_request)
 {
        __be16 port;
        layer_mask_t layer_masks[LANDLOCK_NUM_ACCESS_NET] = {};
        const struct landlock_rule *rule;
-       access_mask_t handled_access;
        struct landlock_id id = {
                .type = LANDLOCK_KEY_NET_PORT,
        };
@@ -164,9 +163,9 @@ static int current_check_access_socket(struct socket *const sock,
        BUILD_BUG_ON(sizeof(port) > sizeof(id.key.data));
 
        rule = landlock_find_rule(dom, id);
-       handled_access = landlock_init_layer_masks(
+       access_request = landlock_init_layer_masks(
                dom, access_request, &layer_masks, LANDLOCK_KEY_NET_PORT);
-       if (landlock_unmask_layers(rule, handled_access, &layer_masks,
+       if (landlock_unmask_layers(rule, access_request, &layer_masks,
                                   ARRAY_SIZE(layer_masks)))
                return 0;