From 0f33e93fd5c796481a7d5000d7ffff8a8ec37511 Mon Sep 17 00:00:00 2001 From: "Zheng, Qi" Date: Thu, 16 Feb 2023 11:10:21 +0800 Subject: [PATCH] [libos] Fix size checking bug for shmget --- src/libos/src/ipc/shm.rs | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/libos/src/ipc/shm.rs b/src/libos/src/ipc/shm.rs index bcfa8a8a..1c6a3ad6 100644 --- a/src/libos/src/ipc/shm.rs +++ b/src/libos/src/ipc/shm.rs @@ -360,8 +360,8 @@ impl ShmManager { key, size, shmflg ); - // Check the size from user - if size < SHMMIN || size > SHMMAX { + // Check the size from user for shm creation + if shmflg.contains(ShmFlags::IPC_CREAT) && (size < SHMMIN || size > SHMMAX) { return_errno!(EINVAL, "invalid size"); } @@ -374,10 +374,7 @@ impl ShmManager { || mode.contains(FileMode::S_IWGRP) || mode.contains(FileMode::S_IWOTH); if !(read_per && write_per) { - return_errno!( - EINVAL, - "shared memory segement in occlum should have rw permission now" - ); + warn!("shared memory segement in occlum should have rw permission"); } let mut shm_segments = self.shm_segments.write().unwrap();