fix error code on time conversion overflows
[musl] / src / ipc / shmget.c
index 86e254a..b44f9d6 100644 (file)
@@ -1,12 +1,14 @@
 #include <sys/shm.h>
+#include <stdint.h>
 #include "syscall.h"
 #include "ipc.h"
 
 int shmget(key_t key, size_t size, int flag)
 {
-#ifdef __NR_shmget
-       return syscall3(__NR_shmget, key, size, flag);
+       if (size > PTRDIFF_MAX) size = SIZE_MAX;
+#ifdef SYS_shmget
+       return syscall(SYS_shmget, key, size, flag);
 #else
-       return syscall4(__NR_ipc, IPCOP_shmget, key, size, flag);
+       return syscall(SYS_ipc, IPCOP_shmget, key, size, flag);
 #endif
 }