From 1758bd683e8e3dbceaa79e0cfc5da437f48be87e Mon Sep 17 00:00:00 2001 From: Beau McCartney Date: Sat, 16 Mar 2024 12:13:00 -0600 Subject: [PATCH] sys_shm_open: fchmod the returned descriptor to get correct perms this doesn't happen by default --- core/sys/darwin/xnu_system_call_helpers.odin | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/sys/darwin/xnu_system_call_helpers.odin b/core/sys/darwin/xnu_system_call_helpers.odin index 815f62466..e253a0cd9 100644 --- a/core/sys/darwin/xnu_system_call_helpers.odin +++ b/core/sys/darwin/xnu_system_call_helpers.odin @@ -206,5 +206,9 @@ sys_shm_open :: proc(name: string, oflag: Open_Flags, mode: Permission) -> (c.in result := syscall_shm_open(cname, cmode, cflags) state := result != -1 + if state && cflags != 0 { + state = (syscall_fchmod(result, cflags) != -1) + } + return result * cast(c.int)state, state }