From deb4a529bed26e5d83698df3057fd5d6fe5fbc06 Mon Sep 17 00:00:00 2001 From: Marsman Date: Sun, 8 Feb 2026 08:18:36 +0000 Subject: [PATCH] fix: return EINVAL for invalid prot of mprotect --- src/platform/redox/mod.rs | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/platform/redox/mod.rs b/src/platform/redox/mod.rs index 707f402dfc..f61202ff28 100644 --- a/src/platform/redox/mod.rs +++ b/src/platform/redox/mod.rs @@ -796,14 +796,10 @@ impl Pal for Sys { let Some(len) = round_up_to_page_size(len) else { return Err(Errno(ENOMEM)); }; - (unsafe { - syscall::mprotect( - addr as usize, - len, - syscall::MapFlags::from_bits((prot as usize) << 16) - .expect("mprotect: invalid bit pattern"), - ) - })?; + let Some(prot) = syscall::MapFlags::from_bits((prot as usize) << 16) else { + return Err(Errno(EINVAL)); + }; + (unsafe { syscall::mprotect(addr as usize, len, prot) })?; Ok(()) }