selftests/memfd: sysctl: fix MEMFD_NOEXEC_SCOPE_NOEXEC_ENFORCED
authorJeff Xu <jeffxu@google.com>
Wed, 5 Jul 2023 06:33:15 +0000 (06:33 +0000)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 18 Aug 2023 17:12:11 +0000 (10:12 -0700)
Add selftest for sysctl vm.memfd_noexec is 2
(MEMFD_NOEXEC_SCOPE_NOEXEC_ENFORCED)

memfd_create(.., MFD_EXEC) should fail in this case.

Link: https://lkml.kernel.org/r/20230705063315.3680666-3-jeffxu@google.com
Reported-by: Dominique Martinet <asmadeus@codewreck.org>
Closes: https://lore.kernel.org/linux-mm/CABi2SkXUX_QqTQ10Yx9bBUGpN1wByOi_=gZU6WEy5a8MaQY3Jw@mail.gmail.com/T/
Signed-off-by: Jeff Xu <jeffxu@google.com>
Cc: Daniel Verkamp <dverkamp@chromium.org>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Jann Horn <jannh@google.com>
Cc: Jorge Lucangeli Obes <jorgelo@chromium.org>
Cc: Kees Cook <keescook@chromium.org>
Cc: kernel test robot <lkp@intel.com>
Cc: Mike Kravetz <mike.kravetz@oracle.com>
Cc: Shuah Khan <skhan@linuxfoundation.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
tools/testing/selftests/memfd/memfd_test.c

index dba0e8ba002f8862ff7d34dc09703c39a259dd13..dbdd9ec5e3973fa7ca74728582cf89057872402e 100644 (file)
@@ -1147,6 +1147,11 @@ static void test_sysctl_child(void)
        sysctl_assert_write("2");
        mfd_fail_new("kern_memfd_sysctl_2",
                MFD_CLOEXEC | MFD_ALLOW_SEALING);
+       mfd_fail_new("kern_memfd_sysctl_2_MFD_EXEC",
+               MFD_CLOEXEC | MFD_EXEC);
+       fd = mfd_assert_new("", 0, MFD_NOEXEC_SEAL);
+       close(fd);
+
        sysctl_fail_write("0");
        sysctl_fail_write("1");
 }