selftests/landlock: Add tests for unknown access rights
authorMickaël Salaün <mic@digikod.net>
Fri, 6 May 2022 16:08:14 +0000 (18:08 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 Jun 2022 08:23:23 +0000 (10:23 +0200)
commit c56b3bf566da5a0dd3b58ad97a614b0928b06ebf upstream.

Make sure that trying to use unknown access rights returns an error.

Cc: Shuah Khan <shuah@kernel.org>
Link: https://lore.kernel.org/r/20220506160820.524344-5-mic@digikod.net
Cc: stable@vger.kernel.org
Signed-off-by: Mickaël Salaün <mic@digikod.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
tools/testing/selftests/landlock/fs_test.c

index cc7fa7b..f293b7e 100644 (file)
@@ -448,6 +448,22 @@ TEST_F_FORK(layout1, file_access_rights)
        ASSERT_EQ(0, close(path_beneath.parent_fd));
 }
 
+TEST_F_FORK(layout1, unknown_access_rights)
+{
+       __u64 access_mask;
+
+       for (access_mask = 1ULL << 63; access_mask != ACCESS_LAST;
+            access_mask >>= 1) {
+               struct landlock_ruleset_attr ruleset_attr = {
+                       .handled_access_fs = access_mask,
+               };
+
+               ASSERT_EQ(-1, landlock_create_ruleset(&ruleset_attr,
+                                                     sizeof(ruleset_attr), 0));
+               ASSERT_EQ(EINVAL, errno);
+       }
+}
+
 static void add_path_beneath(struct __test_metadata *const _metadata,
                             const int ruleset_fd, const __u64 allowed_access,
                             const char *const path)