fix: return EINVAL for invalid prot of mprotect

This commit is contained in:
Marsman
2026-02-08 08:18:36 +00:00
parent a935094d2d
commit deb4a529be
+4 -8
View File
@@ -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(())
}