Mark Wielaard b427b6
commit 9a447c6472947bce97e8b90b7f3f97bd7cd9f3ed
Mark Wielaard b427b6
Author: mjw <mjw@a5019735-40e9-0310-863c-91ae7b9d1cf9>
Mark Wielaard b427b6
Date:   Wed Feb 17 20:53:34 2016 +0000
Mark Wielaard b427b6
Mark Wielaard b427b6
    Bug 359201 futex syscall skips argument 5 if op is FUTEX_WAIT_BITSET
Mark Wielaard b427b6
    
Mark Wielaard b427b6
    git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15793 a5019735-40e9-0310-863c-91ae7b9d1cf9
Mark Wielaard b427b6
Mark Wielaard b427b6
diff --git a/coregrind/m_syswrap/syswrap-linux.c b/coregrind/m_syswrap/syswrap-linux.c
Mark Wielaard b427b6
index f796969..b57436c 100644
Mark Wielaard b427b6
--- a/coregrind/m_syswrap/syswrap-linux.c
Mark Wielaard b427b6
+++ b/coregrind/m_syswrap/syswrap-linux.c
Mark Wielaard b427b6
@@ -1154,13 +1154,16 @@ PRE(sys_futex)
Mark Wielaard b427b6
             return;
Mark Wielaard b427b6
       }
Mark Wielaard b427b6
       if (*(vki_u32 *)ARG1 != ARG3) {
Mark Wielaard b427b6
-         PRE_REG_READ5(long, "futex",
Mark Wielaard b427b6
+         PRE_REG_READ4(long, "futex",
Mark Wielaard b427b6
                        vki_u32 *, futex, int, op, int, val,
Mark Wielaard b427b6
-                       struct timespec *, utime, int, dummy);
Mark Wielaard b427b6
+                       struct timespec *, utime);
Mark Wielaard b427b6
       } else {
Mark Wielaard b427b6
-         PRE_REG_READ6(long, "futex",
Mark Wielaard b427b6
+        /* Note argument 5 is unused, but argument 6 is used.
Mark Wielaard b427b6
+           So we cannot just PRE_REG_READ6. Read argument 6 separately.  */
Mark Wielaard b427b6
+         PRE_REG_READ4(long, "futex",
Mark Wielaard b427b6
                        vki_u32 *, futex, int, op, int, val,
Mark Wielaard b427b6
-                       struct timespec *, utime, int, dummy, int, val3);
Mark Wielaard b427b6
+                       struct timespec *, utime);
Mark Wielaard b427b6
+         PRA6("futex",int,val3);
Mark Wielaard b427b6
       }
Mark Wielaard b427b6
       break;
Mark Wielaard b427b6
    case VKI_FUTEX_WAKE_BITSET: