From 2e4a84e829e3b34d5f06d4939901657fe9d26861 Mon Sep 17 00:00:00 2001 From: rusty-snake <41237666+rusty-snake@users.noreply.github.com> Date: Sat, 20 Jan 2024 15:18:30 +0100 Subject: [PATCH] Add MFD_NOEXEC_SEAL and MFD_EXEC (apply to `main`) (cherry picked from commit 8b68569939151c1390ee8b7ffcc0772f517d6ecd) --- libc-test/build.rs | 4 ++++ libc-test/semver/android.txt | 2 ++ libc-test/semver/linux.txt | 2 ++ src/unix/linux_like/android/mod.rs | 2 ++ src/unix/linux_like/linux/mod.rs | 2 ++ 5 files changed, 12 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 26b1c550de22c..727274e8e468b 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3821,6 +3821,10 @@ fn test_linux(target: &str) { if name.starts_with("NI_IDN") { return true; } + // FIXME: Requires >= 6.3 kernel headers + if name == "MFD_NOEXEC_SEAL" || name == "MFD_EXEC" { + return true; + } } match name { // These constants are not available if gnu headers have been included diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt index f2f41be9e83d3..ac13ed73365e5 100644 --- a/libc-test/semver/android.txt +++ b/libc-test/semver/android.txt @@ -1251,7 +1251,9 @@ MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ MFD_ALLOW_SEALING MFD_CLOEXEC +MFD_EXEC MFD_HUGETLB +MFD_NOEXEC_SEAL MINIX2_SUPER_MAGIC MINIX2_SUPER_MAGIC2 MINIX_SUPER_MAGIC diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index c93940b82e485..b58760fe27264 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -1465,7 +1465,9 @@ MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ MFD_ALLOW_SEALING MFD_CLOEXEC +MFD_EXEC MFD_HUGETLB +MFD_NOEXEC_SEAL MINSIGSTKSZ MMAP_PAGE_ZERO MNT_DETACH diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 97791e6b5a72e..e0d1535a7bc53 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -2255,6 +2255,8 @@ pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; pub const MFD_CLOEXEC: ::c_uint = 0x0001; pub const MFD_ALLOW_SEALING: ::c_uint = 0x0002; pub const MFD_HUGETLB: ::c_uint = 0x0004; +pub const MFD_NOEXEC_SEAL: ::c_uint = 0x0008; +pub const MFD_EXEC: ::c_uint = 0x0010; pub const MFD_HUGE_64KB: ::c_uint = 0x40000000; pub const MFD_HUGE_512KB: ::c_uint = 0x4c000000; pub const MFD_HUGE_1MB: ::c_uint = 0x50000000; diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 2ce09ed168df8..5317ceaa58768 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -2812,6 +2812,8 @@ pub const CMSPAR: ::tcflag_t = 0o10000000000; pub const MFD_CLOEXEC: ::c_uint = 0x0001; pub const MFD_ALLOW_SEALING: ::c_uint = 0x0002; pub const MFD_HUGETLB: ::c_uint = 0x0004; +pub const MFD_NOEXEC_SEAL: ::c_uint = 0x0008; +pub const MFD_EXEC: ::c_uint = 0x0010; pub const MFD_HUGE_64KB: ::c_uint = 0x40000000; pub const MFD_HUGE_512KB: ::c_uint = 0x4c000000; pub const MFD_HUGE_1MB: ::c_uint = 0x50000000;