summaryrefslogtreecommitdiff
path: root/libc/sysdeps/unix/sysv/linux/msgrcv.c
diff options
context:
space:
mode:
Diffstat (limited to 'libc/sysdeps/unix/sysv/linux/msgrcv.c')
-rw-r--r--libc/sysdeps/unix/sysv/linux/msgrcv.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/libc/sysdeps/unix/sysv/linux/msgrcv.c b/libc/sysdeps/unix/sysv/linux/msgrcv.c
index f9b399ebd..7ec9b253b 100644
--- a/libc/sysdeps/unix/sysv/linux/msgrcv.c
+++ b/libc/sysdeps/unix/sysv/linux/msgrcv.c
@@ -23,13 +23,11 @@
#include <sysdep-cancel.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
-
/* Kludge to work around Linux' restriction of only up to five
arguments to a system call. */
struct ipc_kludge
{
- void *__unbounded msgp;
+ void *msgp;
long int msgtyp;
};
@@ -46,17 +44,16 @@ __libc_msgrcv (msqid, msgp, msgsz, msgtyp, msgflg)
fives parameters to a system call. */
struct ipc_kludge tmp;
- tmp.msgp = CHECK_N (msgp, msgsz);
+ tmp.msgp = msgp;
tmp.msgtyp = msgtyp;
if (SINGLE_THREAD_P)
- return INLINE_SYSCALL (ipc, 5, IPCOP_msgrcv, msqid, msgsz, msgflg,
- __ptrvalue (&tmp));
+ return INLINE_SYSCALL (ipc, 5, IPCOP_msgrcv, msqid, msgsz, msgflg, &tmp);
int oldtype = LIBC_CANCEL_ASYNC ();
ssize_t result = INLINE_SYSCALL (ipc, 5, IPCOP_msgrcv, msqid, msgsz, msgflg,
- __ptrvalue (&tmp));
+ &tmp);
LIBC_CANCEL_RESET (oldtype);