From d0168cc0992a79245c17d892a622fec527b1fb03 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 20 Oct 2000 06:14:58 +0000 Subject: [PATCH] (__new_semctl): Pass union semun as 4th argument to semctl syscall, not address of it. --- sysdeps/unix/sysv/linux/alpha/semctl.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sysdeps/unix/sysv/linux/alpha/semctl.c b/sysdeps/unix/sysv/linux/alpha/semctl.c index 48bc2d4..ea1a1e4 100644 --- a/sysdeps/unix/sysv/linux/alpha/semctl.c +++ b/sysdeps/unix/sysv/linux/alpha/semctl.c @@ -73,7 +73,7 @@ __new_semctl (int semid, int semnum, int cmd, ...) #if __ASSUME_32BITUIDS > 0 return INLINE_SYSCALL (semctl, 4, semid, semnum, cmd | __IPC_64, - CHECK_SEMCTL (&arg, semid, cmd | __IPC_64)); + CHECK_SEMCTL (&arg, semid, cmd | __IPC_64)->array); #else switch (cmd) { case SEM_STAT: @@ -82,7 +82,7 @@ __new_semctl (int semid, int semnum, int cmd, ...) break; default: return INLINE_SYSCALL (semctl, 4, semid, semnum, cmd, - CHECK_SEMCTL (&arg, semid, cmd)); + CHECK_SEMCTL (&arg, semid, cmd)->array); } { @@ -93,7 +93,7 @@ __new_semctl (int semid, int semnum, int cmd, ...) /* Unfortunately there is no way how to find out for sure whether we should use old or new semctl. */ result = INLINE_SYSCALL (semctl, 4, semid, semnum, cmd | __IPC_64, - CHECK_SEMCTL (&arg, semid, cmd | __IPC_64)); + CHECK_SEMCTL (&arg, semid, cmd | __IPC_64)->array); if (result != -1 || errno != EINVAL) return result; @@ -113,7 +113,7 @@ __new_semctl (int semid, int semnum, int cmd, ...) } } result = INLINE_SYSCALL (semctl, 4, semid, semnum, cmd, - CHECK_SEMCTL (&arg, semid, cmd)); + CHECK_SEMCTL (&arg, semid, cmd)->array); if (result != -1 && cmd != IPC_SET) { memset(buf, 0, sizeof(*buf)); -- 2.7.4