[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH] linux-user: shmctl() should ignore IPC_64

From: Laurent Vivier
Subject: [Qemu-devel] [PATCH] linux-user: shmctl() should ignore IPC_64
Date: Tue, 2 Jun 2009 00:32:37 +0200

This has been detected trying to use "dbench" with m68k-linux-user/qemu-m68k 
"shmctl()" is called with "IPC_RMID | IPC_64".

IPC_64 is useless with IPC_RMID, SHM_LOCK, SHM_UNLOCK
(as the only parameter is the id without shmid_ds) and
already ignored with semctl() and msgctl().

Signed-off-by: Laurent Vivier <address@hidden>
 linux-user/syscall.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index b1bba48..c3d1d73 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -2539,11 +2539,11 @@ static abi_long do_ipc(unsigned int call, int first,
        /* IPC_* and SHM_* command values are the same on all linux platforms */
     case IPCOP_shmctl:
-        switch(second) {
+        switch(second & 0xff) {
         case IPC_RMID:
         case SHM_LOCK:
         case SHM_UNLOCK:
-            ret = get_errno(shmctl(first, second, NULL));
+            ret = get_errno(shmctl(first, second & 0xff, NULL));
             goto unimplemented;

reply via email to

[Prev in Thread] Current Thread [Next in Thread]