6.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Jeff Xu jeffxu@google.com
[ Upstream commit badbbcd76545c58eff64bb1548f7f834a30dc52a ]
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_=gZU6WEy5a... 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 Stable-dep-of: 202e14222fad ("memfd: do not -EACCES old memfd_create() users with vm.memfd_noexec=2") Signed-off-by: Sasha Levin sashal@kernel.org --- tools/testing/selftests/memfd/memfd_test.c | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/tools/testing/selftests/memfd/memfd_test.c b/tools/testing/selftests/memfd/memfd_test.c index 7fc5d7c3bd65b..8eb49204f9eac 100644 --- a/tools/testing/selftests/memfd/memfd_test.c +++ b/tools/testing/selftests/memfd/memfd_test.c @@ -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"); }