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 }