From fc895c5697979bcc859daf41077913a9469ac75b Mon Sep 17 00:00:00 2001 From: Marsman1996 Date: Fri, 13 Sep 2024 20:18:26 +0800 Subject: [PATCH] Fix panic in `mmap` by invalid `perms` --- kernel/src/syscall/mmap.rs | 2 +- kernel/src/vm/perms.rs | 6 ------ 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/kernel/src/syscall/mmap.rs b/kernel/src/syscall/mmap.rs index a25633cc2..bea99c046 100644 --- a/kernel/src/syscall/mmap.rs +++ b/kernel/src/syscall/mmap.rs @@ -24,7 +24,7 @@ pub fn sys_mmap( offset: u64, ctx: &Context, ) -> Result { - let perms = VmPerms::from_posix_prot_bits(perms as u32).unwrap(); + let perms = VmPerms::from_bits_truncate(perms as u32); let option = MMapOptions::try_from(flags as u32)?; let res = do_sys_mmap( addr as usize, diff --git a/kernel/src/vm/perms.rs b/kernel/src/vm/perms.rs index 8a3cbb14b..15b959b86 100644 --- a/kernel/src/vm/perms.rs +++ b/kernel/src/vm/perms.rs @@ -16,12 +16,6 @@ bitflags! { } } -impl VmPerms { - pub fn from_posix_prot_bits(bits: u32) -> Option { - VmPerms::from_bits(bits) - } -} - impl From for VmPerms { fn from(rights: Rights) -> VmPerms { let mut vm_perm = VmPerms::empty();