]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Darwin: rework syscall arg handling
authorPaul Floyd <pjfloyd@wanadoo.fr>
Sun, 9 Nov 2025 18:28:13 +0000 (19:28 +0100)
committerPaul Floyd <pjfloyd@wanadoo.fr>
Sun, 9 Nov 2025 18:54:58 +0000 (19:54 +0100)
There were numerous issues, particularly with syscall SYS_syscall
and the scalar tests. Only tested on amd64, I don't have access to
an OSX 10.12 or earlier machine to do any testing.

The key elements in VG_(client_syscall) are, when the PRE wrapper
does not handle the syscall

1. getSyscallArgsFromGuestState
2. getSyscallArgLayout
3. call PRE wrapper

either blocking

4. putSyscallArgsIntoGuestState
5. do_syscall_for_client

or non-blocking

6. VG_(do_syscall)

What has changed
----------------
struct SyscallArgs now like FreeBSD, stores both the
canonical_sysno (which is the final syscall number, never
SYS_syscall) and the original_sysno (which can be SYS_syscall).
These get set in getSyscallArgsFromGuestState which has
changed accordingly.

getSyscallArgsFromGuestState has changed to always get the layout
coresponding to the canonical layout. This was the cause of the
problems with the scalar tests - the arguments were effectively
out by one.

Many subsequent changes to the scalar test, filter and expected.
The scalar test still isn't quite right. __NR_kevent_qos is missing
a scalar error from argument 6. That's the one with special case
handling because it is a register argument for a normal syscall
but a stack argument for syscall SYS_syscall.

coregrind/m_syswrap/priv_types_n_macros.h
coregrind/m_syswrap/syswrap-darwin.c
coregrind/m_syswrap/syswrap-generic.c
coregrind/m_syswrap/syswrap-main.c
memcheck/tests/darwin/Makefile.am
memcheck/tests/darwin/filter_scalar [new file with mode: 0755]
memcheck/tests/darwin/scalar.c
memcheck/tests/darwin/scalar.stderr.exp
memcheck/tests/darwin/scalar.vgtest
memcheck/tests/darwin/scalar_nocancel.vgtest

index 66a11879e580d21f80a14ac6bafb8ced6c0e0967..6da1cad31d3c63259734d866b8d295a24043073f 100644 (file)
@@ -51,7 +51,7 @@
 typedef
    struct SyscallArgs {
       Word canonical_sysno;
-#if defined(VGO_freebsd)
+#if defined(VGO_freebsd) || defined(VGO_darwin)
       /*
         * This may be the same as canonical_sysno (normal syscalls)
        * Or it may be __NR_syscall or __NR___syscall
@@ -125,7 +125,7 @@ typedef
       Int s_arg6;
       Int s_arg7;
       Int s_arg8;
-#     elif defined(VGP_amd64_freebsd)
+#     elif defined(VGP_amd64_freebsd) || defined(VGP_amd64_darwin)
       Int o_arg1;
       Int o_arg2;
       Int o_arg3;
@@ -168,7 +168,7 @@ typedef
       Int s_arg6;
       Int s_arg7;
       Int s_arg8;
-#     elif defined(VGP_amd64_darwin) || defined(VGP_amd64_solaris)
+#     elif defined(VGP_amd64_solaris)
       Int o_arg1;
       Int o_arg2;
       Int o_arg3;
index 4eec0eb36b501c3698883701e8243f113b476c1c..987e7ee0ffa0c73de2dd60bbd325f07ac32e48be 100644 (file)
@@ -2764,7 +2764,7 @@ PRE(fstat_extended)
    PRE_REG_READ4(int, "fstat_extended", int, fd, struct stat *, buf, 
                  void *, fsacl, vki_size_t *, fsacl_size);
    PRE_MEM_WRITE(   "fstat_extended(buf)",        ARG2, sizeof(struct vki_stat) );
-   if (ML_(safe_to_deref)( (void*)ARG4, sizeof(vki_size_t) ))
+   if (ARG4 && ML_(safe_to_deref)( (void*)ARG4, sizeof(vki_size_t) ))
       PRE_MEM_WRITE("fstat_extended(fsacl)",      ARG3, *(vki_size_t *)ARG4 );
    PRE_MEM_READ(    "fstat_extended(fsacl_size)", ARG4, sizeof(vki_size_t) );
 }
@@ -2785,7 +2785,7 @@ PRE(stat64_extended)
                  void *, fsacl, vki_size_t *, fsacl_size);
    PRE_MEM_RASCIIZ( "stat64_extended(file_name)",  ARG1 );
    PRE_MEM_WRITE(   "stat64_extended(buf)",        ARG2, sizeof(struct vki_stat64) );
-   if (ML_(safe_to_deref)( (void*)ARG4, sizeof(vki_size_t) ))
+   if (ARG4 && ML_(safe_to_deref)( (void*)ARG4, sizeof(vki_size_t) ))
       PRE_MEM_WRITE("stat64_extended(fsacl)",      ARG3, *(vki_size_t *)ARG4 );
    PRE_MEM_READ(    "stat64_extended(fsacl_size)", ARG4, sizeof(vki_size_t) );
 }
@@ -2806,7 +2806,7 @@ PRE(lstat64_extended)
                  void *, fsacl, vki_size_t *, fsacl_size);
    PRE_MEM_RASCIIZ( "lstat64_extended(file_name)",  ARG1 );
    PRE_MEM_WRITE(   "lstat64_extended(buf)",        ARG2, sizeof(struct vki_stat64) );
-   if (ML_(safe_to_deref)( (void*)ARG4, sizeof(vki_size_t) ))
+   if (ARG4 && ML_(safe_to_deref)( (void*)ARG4, sizeof(vki_size_t) ))
       PRE_MEM_WRITE(   "lstat64_extended(fsacl)",   ARG3, *(vki_size_t *)ARG4 );
    PRE_MEM_READ(    "lstat64_extended(fsacl_size)", ARG4, sizeof(vki_size_t) );
 }
@@ -2826,7 +2826,7 @@ PRE(fstat64_extended)
    PRE_REG_READ4(int, "fstat64_extended", int, fd, struct stat64 *, buf, 
                  void *, fsacl, vki_size_t *, fsacl_size);
    PRE_MEM_WRITE(   "fstat64_extended(buf)",        ARG2, sizeof(struct vki_stat64) );
-   if (ML_(safe_to_deref)( (void*)ARG4, sizeof(vki_size_t) ))
+   if (ARG4 && ML_(safe_to_deref)( (void*)ARG4, sizeof(vki_size_t) ))
       PRE_MEM_WRITE("fstat64_extended(fsacl)",      ARG3, *(vki_size_t *)ARG4 );
    PRE_MEM_READ(    "fstat64_extended(fsacl_size)", ARG4, sizeof(vki_size_t) );
 }
index 6050f5b65d7567a19572c94a6c1ba151d8ac4fab..2c113c69cfe28063eae2b0fe866ab333b3133cc0 100644 (file)
@@ -5030,8 +5030,13 @@ PRE(sys_poll)
    *flags |= SfMayBlock;
    PRINT("sys_poll ( %#" FMT_REGWORD "x, %" FMT_REGWORD "u, %ld )\n",
          ARG1, ARG2, SARG3);
+#if defined(VGO_darwin)
+   PRE_REG_READ3(long, "poll",
+                 struct vki_pollfd *, ufds, unsigned int, nfds, int, timeout);
+#else
    PRE_REG_READ3(long, "poll",
                  struct vki_pollfd *, ufds, unsigned int, nfds, long, timeout);
+#endif
 
    for (i = 0; i < ARG2; i++) {
       PRE_MEM_READ( "poll(ufds.fd)",
index 49f841ff7489bfdea8a05bd85b61c34a1ab59f52..02993a58f96bf4a705b48cb2bec313586d4c471d 100644 (file)
@@ -460,7 +460,7 @@ static
 Bool eq_SyscallArgs ( SyscallArgs* a1, SyscallArgs* a2 )
 {
    return a1->canonical_sysno == a2->canonical_sysno
-#if defined(VGO_freebsd)
+#if defined(VGO_freebsd) || defined(VGO_darwin)
           && a1->original_sysno == a2->original_sysno
 #endif
           && a1->arg1 == a2->arg1
@@ -790,6 +790,8 @@ void getSyscallArgsFromGuestState ( /*OUT*/SyscallArgs*       canonical,
             VG_SYSNUM_STRING(canonical->canonical_sysno));
    }
 
+   canonical->original_sysno = gst->guest_EAX;
+
    // Here we determine what kind of syscall it was by looking at the
    // interrupt kind, and then encode the syscall number using the 64-bit
    // encoding for Valgrind's internal use.
@@ -869,6 +871,8 @@ void getSyscallArgsFromGuestState ( /*OUT*/SyscallArgs*       canonical,
             VG_SYSNUM_STRING(canonical->canonical_sysno));
    }
 
+   canonical->original_sysno = gst->guest_RAX;
+
    // no canonical->canonical_sysno adjustment needed
 
 #elif defined(VGP_s390x_linux)
@@ -1865,7 +1869,7 @@ void getSyscallArgLayout ( /*OUT*/SyscallArgLayout* layout, /*IN*/Bool syscall_s
    layout->s_arg7   = sizeof(UWord) * 7;
    layout->s_arg8   = sizeof(UWord) * 8;
  
-#elif defined(VGP_amd64_freebsd)
+#elif defined(VGP_amd64_freebsd) || defined(VGP_amd64_darwin)
    if (syscall_syscall)
    {
       layout->o_sysno  = OFFSET_amd64_RDI;
@@ -2292,7 +2296,7 @@ void VG_(client_syscall) ( ThreadId tid, UInt trc )
    /* Save the syscall number in the thread state in case the syscall 
       is interrupted by a signal. */
    canonical_sysno = sci->orig_args.canonical_sysno;
-#if defined(VGO_freebsd)
+#if defined(VGO_freebsd) || defined(VGO_darwin)
    original_sysno = sci->orig_args.original_sysno;
 #else
    /*
@@ -2347,6 +2351,12 @@ void VG_(client_syscall) ( ThreadId tid, UInt trc )
        original_sysno == __NR___syscall) {
       syscall_syscall = True;
    }
+#endif
+#if defined(VGP_amd64_darwin)
+   if (original_sysno == __NR_syscall) {
+      syscall_syscall = True;
+   }
+   original_sysno = canonical_sysno;
 #endif
    getSyscallArgLayout( &layout, syscall_syscall );
 
index 0810accdc0a86b8b9d8d03e2ff3f17374255d310..e43d4af795022296f4ebdfe2bf9fd8b1f795cc9d 100644 (file)
@@ -1,7 +1,7 @@
 
 include $(top_srcdir)/Makefile.tool-tests.am
 
-dist_noinst_SCRIPTS = filter_stderr
+dist_noinst_SCRIPTS = filter_stderr filter_scalar
 
 noinst_HEADERS = scalar.h
 
diff --git a/memcheck/tests/darwin/filter_scalar b/memcheck/tests/darwin/filter_scalar
new file mode 100755 (executable)
index 0000000..1397232
--- /dev/null
@@ -0,0 +1,13 @@
+#! /bin/sh
+
+sed '/in frame #., created by/d' |
+
+./filter_stderr "$@" |
+
+sed '/by 0x.*: main.*scalar.*\.c.*/d' |
+
+# get rid of error limit message
+# but there is still an added extra blank line before
+sed '/More than 100 errors detected.  Subsequent errors/d' |
+sed '/will still be recorded, but in less detail than before./d'
+
index 225615523b50b294508911bf390a19725405868b..dd53145d2cd391ee1eaa1f9a910fb0d324a7e8b8 100644 (file)
@@ -4,6 +4,7 @@
 #include <sched.h>
 #include <signal.h>
 #include <sys/shm.h>
+#include <sys/socket.h>
 
 // See memcheck/tests/x86-linux/scalar.c for an explanation of what this test
 // is doing.
@@ -210,7 +211,7 @@ int main(void)
    // __NR_bind 104
 
    GO(__NR_setsockopt, 105, "5s 1m");
-   SY(__NR_setsockopt, x0, x0, x0, x0+1, x0+1); FAIL;
+   SY(__NR_setsockopt, x0, x0, x0, px+x0, sizeof(socklen_t)+x0); FAIL;
 
    // __NR_listen 106
 
@@ -236,10 +237,11 @@ int main(void)
    // __NR_gettimeofday 116
    // __NR_getrusage 117
 
-   // Nb: there's no "getsockopt(optlen) points to unaddressable byte(s)";
-   // difficult to get with arg4 being checked with buf_and_len_pre_check.
-   GO(__NR_getsockopt, 118, "5s 1m");
-   SY(__NR_getsockopt, x0, x0, x0, x0+1, x0+&px[1]); FAIL;
+   socklen_t *len = malloc(sizeof(socklen_t));
+   *len = 2*sizeof(long)+x0;
+   free(len);
+   GO(__NR_getsockopt, 118, "5s 2m");
+   SY(__NR_getsockopt, x0, x0, x0, x0+1, len+x0); FAIL;
 
    GO_UNIMP(119, "old resuba");
 
@@ -505,10 +507,12 @@ int main(void)
       // requires the 4th arg to point to a valid value.
       SY(__NR_lstat_extended, 0, 0, 0, &one); FAIL;
 
-      GO(__NR_fstat_extended, 280, "4s 3m");
+      GO(__NR_fstat_extended, 280, "4s 2m");
       SY(__NR_fstat_extended, x0, x0, x0, x0); FAIL;
+
       // Go again to get a complaint about where the 3rd arg points;  it
       // requires the 4th arg to point to a valid value.
+      GO(__NR_fstat_extended, 280, "0s 2m");
       SY(__NR_fstat_extended, 0, 0, 0, &one); FAIL;
    }
 
@@ -611,20 +615,26 @@ int main(void)
       size_t one = 1;
       GO(__NR_stat64_extended, 341, "4s 4m");
       SY(__NR_stat64_extended, x0, x0, x0, x0); FAIL;
+
       // Go again to get a complaint about where the 3rd arg points;  it
       // requires the 4th arg to point to a valid value.
+      GO(__NR_stat64_extended, 341, "0s 3m");
       SY(__NR_stat64_extended, 0, 0, 0, &one); FAIL;
 
       GO(__NR_lstat64_extended, 342, "4s 4m");
       SY(__NR_lstat64_extended, x0, x0, x0, x0); FAIL;
+
       // Go again to get a complaint about where the 3rd arg points;  it
       // requires the 4th arg to point to a valid value.
+      GO(__NR_lstat64_extended, 342, "0s 3m");
       SY(__NR_lstat64_extended, 0, 0, 0, &one); FAIL;
 
-      GO(__NR_fstat64_extended, 342, "4s 3m");
+      GO(__NR_fstat64_extended, 342, "4s 2m");
       SY(__NR_fstat64_extended, x0, x0, x0, x0); FAIL;
+
       // Go again to get a complaint about where the 3rd arg points;  it
       // requires the 4th arg to point to a valid value.
+      GO(__NR_fstat64_extended, 342, "0s 2m");
       SY(__NR_fstat64_extended, 0, 0, 0, &one); FAIL;
    }
 
@@ -662,13 +672,10 @@ int main(void)
 
    GO_UNIMP(369-373, "unused");
 
-#if DARWIN_VERS >= DARWIN_10_11
-   {
-      long args[8] = { x0+8, x0+0xffffffee, x0+1, x0+1, x0+1, x0+1, x0+1, x0+1 };
-      GO(__NR_kevent_qos, 374, "1s 8m");
-      SY(__NR_kevent_qos, args+x0); FAIL;
-   }
-#endif /* DARWIN_VERS >= DARWIN_10_11 */
+#if defined(__NR_kevent_qos)
+   GO(__NR_kevent_qos, 374, "8s 4m");
+   SY(__NR_kevent_qos, x0+8, x0+0xffffffee, x0+1, x0+1, x0+1, x0+1, x0+1, x0+1); FAIL;
+#endif
 
    GO_UNIMP(375-379, "unused");
 
@@ -687,15 +694,11 @@ int main(void)
    // __NR___mac_get_lctx 392
    // __NR___mac_set_lctx 393
 
-#if DARWIN_VERS >= DARWIN_10_11
-   {
-      long args[6] = { x0+8, x0+0xffffffee, x0+1, x0+1, x0+1, x0+1 };
-      GO(__NR_pselect, 394, "1s 6m");
-      SY(__NR_pselect, args+x0); FAIL;
-   }
-#else
+#if defined(__NR_pselect)
+   GO(__NR_pselect, 394, "5s 4m");
+   SY(__NR_pselect, x0+8, x0+0xffffffee, x0+1, x0+1, x0+1, x0+1); FAIL;
+#endif
    // __NR_setlcid 394
-#endif /* DARWIN_VERS >= DARWIN_10_11 */
 
    // __NR_getlcid 395
 
@@ -1005,11 +1008,8 @@ int main(void)
    SY(__NR_setgroups, x0+1, x0+1); FAIL;
 
    // __NR_select 82
-   {
-      long args[5] = { x0+8, x0+0xffffffee, x0+1, x0+1, x0+1 };
-      GO(__NR_select, "1s 5m");
-      SY(__NR_select, args+x0); FAIL;
-   }
+   GO(__NR_select, "5s ?m");
+   SY(__NR_select, x0+8, x0+0xffffffee, x0+1, x0+1, x0+1); FAIL;
 
    // __NR_symlink 83
    GO(__NR_symlink, "2s 2m");
@@ -1040,11 +1040,8 @@ int main(void)
    // (superseded, not handled by Valgrind)
 
    // __NR_mmap 90
-   {
-      long args[6] = { x0, x0, x0, x0, x0-1, x0 };
-      GO(__NR_mmap, "1s 1m");
-      SY(__NR_mmap, args+x0); FAIL;
-   }
+   GO(__NR_mmap, "6s 1m");
+   SY(__NR_mmap, x0, x0, x0, x0, x0-1, x0); FAIL;
 
    // __NR_munmap 91
    GO(__NR_munmap, "2s 0m");
index 9212c8fcc837845d66ce80b771eb55808294065e..a3364136011ff10592b4a26d9d7b6fc5e95a35b6 100644 (file)
@@ -9,23 +9,18 @@ x2000003(3):           __NR_read 1+3s 1m
 -----------------------------------------------------
 Syscall param (syscallno) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:31)
 
 Syscall param read(fd) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:31)
 
 Syscall param read(buf) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:31)
 
 Syscall param read(count) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:31)
 
 Syscall param read(buf) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:31)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 -----------------------------------------------------
@@ -33,19 +28,15 @@ x2000004(4):          __NR_write 3s 1m
 -----------------------------------------------------
 Syscall param write(fd) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:34)
 
 Syscall param write(buf) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:34)
 
 Syscall param write(count) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:34)
 
 Syscall param write(buf) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:34)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 -----------------------------------------------------
@@ -53,15 +44,12 @@ x2000005(5):           __NR_open (2-args) 2s 1m
 -----------------------------------------------------
 Syscall param open(filename) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:38)
 
 Syscall param open(flags) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:38)
 
 Syscall param open(filename) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:38)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 -----------------------------------------------------
@@ -81,28 +69,22 @@ x2000007(7):          __NR_wait4 4s 2m
 -----------------------------------------------------
 Syscall param wait4(pid) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:49)
 
 Syscall param wait4(status) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:49)
 
 Syscall param wait4(options) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:49)
 
 Syscall param wait4(rusage) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:49)
 
 Syscall param wait4(status) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:49)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 Syscall param wait4(rusage) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:49)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 -----------------------------------------------------
@@ -113,20 +95,16 @@ x2000009(9):           __NR_link 2s 2m
 -----------------------------------------------------
 Syscall param link(oldpath) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:54)
 
 Syscall param link(newpath) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:54)
 
 Syscall param link(oldpath) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:54)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 Syscall param link(newpath) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:54)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 -----------------------------------------------------
@@ -134,11 +112,9 @@ x200000a(10):         __NR_unlink 1s 1m
 -----------------------------------------------------
 Syscall param unlink(pathname) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:57)
 
 Syscall param unlink(pathname) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:57)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 -----------------------------------------------------
@@ -149,11 +125,9 @@ x200000c(12):          __NR_chdir 1s 1m
 -----------------------------------------------------
 Syscall param chdir(path) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:62)
 
 Syscall param chdir(path) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:62)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 -----------------------------------------------------
@@ -167,19 +141,15 @@ x200000e(14):          __NR_mknod 3s 1m
 -----------------------------------------------------
 Syscall param mknod(pathname) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:68)
 
 Syscall param mknod(mode) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:68)
 
 Syscall param mknod(dev) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:68)
 
 Syscall param mknod(pathname) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:68)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 -----------------------------------------------------
@@ -187,15 +157,12 @@ x200000f(15):          __NR_chmod 2s 1m
 -----------------------------------------------------
 Syscall param chmod(path) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:71)
 
 Syscall param chmod(mode) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:71)
 
 Syscall param chmod(path) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:71)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 -----------------------------------------------------
@@ -203,19 +170,15 @@ x2000010(16):          __NR_chown 3s 1m
 -----------------------------------------------------
 Syscall param chown(path) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:74)
 
 Syscall param chown(owner) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:74)
 
 Syscall param chown(group) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:74)
 
 Syscall param chown(path) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:74)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 -----------------------------------------------------
@@ -226,19 +189,15 @@ x2000012(18):      __NR_getfsstat 3s 1m
 -----------------------------------------------------
 Syscall param getfsstat(buf) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:79)
 
 Syscall param getfsstat(bufsize) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:79)
 
 Syscall param getfsstat(flags) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:79)
 
 Syscall param getfsstat(buf) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:79)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 -----------------------------------------------------
@@ -297,19 +256,15 @@ x200004e(78):        __NR_mincore 3s 1m
 -----------------------------------------------------
 Syscall param mincore(start) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:165)
 
 Syscall param mincore(length) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:165)
 
 Syscall param mincore(vec) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:165)
 
 Syscall param mincore(vec) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:165)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 -----------------------------------------------------
@@ -317,11 +272,9 @@ x2000052(82):        __NR_setpgid 2s 0m
 -----------------------------------------------------
 Syscall param setpgid(pid) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:172)
 
 Syscall param setpgid(pgid) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:172)
 
 -----------------------------------------------------
 (78):            old wait
@@ -355,28 +308,23 @@ x2000069(105):     __NR_setsockopt 5s 1m
 -----------------------------------------------------
 Syscall param setsockopt(s) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:213)
 
 Syscall param setsockopt(level) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:213)
 
 Syscall param setsockopt(optname) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:213)
 
 Syscall param setsockopt(optval) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:213)
 
 Syscall param setsockopt(optlen) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:213)
 
-Syscall param socketcall.setsockopt(optval) points to unaddressable byte(s)
+Syscall param socketcall.setsockopt(optval) points to uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:213)
- Address 0x........ is not stack'd, malloc'd or (recently) free'd
+ Address 0x........ is 0 bytes inside a block of size 8 alloc'd
+   at 0x........: malloc (vg_replace_malloc.c:...)
 
 -----------------------------------------------------
 (107):           old vtimes
@@ -406,34 +354,36 @@ x200006f(111):     __NR_sigsuspend ignore
 (115):           old vtrace
 -----------------------------------------------------
 -----------------------------------------------------
-x2000076(118):     __NR_getsockopt 5s 1m
+x2000076(118):     __NR_getsockopt 5s 2m
 -----------------------------------------------------
 Syscall param getsockopt(s) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:242)
 
 Syscall param getsockopt(level) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:242)
 
 Syscall param getsockopt(optname) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:242)
 
 Syscall param getsockopt(optval) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:242)
 
 Syscall param getsockopt(optlen) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:242)
 
 Syscall param socketcall.getsockopt(optlen) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:242)
- Address 0x........ is 0 bytes after a block of size 8 alloc'd
+ Address 0x........ is 0 bytes inside a block of size 4 free'd
+   at 0x........: free (vg_replace_malloc.c:...)
+ Block was alloc'd at
    at 0x........: malloc (vg_replace_malloc.c:...)
-   by 0x........: main (scalar.c:14)
+
+Syscall param socketcall.getsockopt(optval) points to unaddressable byte(s)
+   ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+Conditional jump or move depends on uninitialised value(s)
+   ...
 
 -----------------------------------------------------
 (119):           old resuba
@@ -450,16 +400,16 @@ Syscall param socketcall.getsockopt(optlen) points to unaddressable byte(s)
 -----------------------------------------------------
 x2000084(132):         __NR_mkfifo 2s 1m
 -----------------------------------------------------
+Syscall param mkfifo(path) contains uninitialised byte(s)
+   ...
+
 Syscall param mkfifo(mode) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:265)
 
 Syscall param mkfifo(path) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:265)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
------------------------------------------------------
 -----------------------------------------------------
 (141):           old getpeername
 -----------------------------------------------------
@@ -504,28 +454,22 @@ x20000a7(167):          __NR_mount 4s 2m
 -----------------------------------------------------
 Syscall param mount(type) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:323)
 
 Syscall param mount(dir) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:323)
 
 Syscall param mount(flags) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:323)
 
 Syscall param mount(data) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:323)
 
 Syscall param mount(type) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:323)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 Syscall param mount(dir) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:323)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 -----------------------------------------------------
@@ -536,23 +480,18 @@ x20000a9(169):          __NR_csops 4s 1m
 -----------------------------------------------------
 Syscall param csops(pid) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:328)
 
 Syscall param csops(ops) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:328)
 
 Syscall param csops(useraddr) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:328)
 
 Syscall param csops(usersize) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:328)
 
 Syscall param csops(useraddr) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:328)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 -----------------------------------------------------
@@ -587,24 +526,19 @@ x20000df(223):   __NR_exchangedata 3s 2m
 -----------------------------------------------------
 Syscall param exchangedata(path1) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:398)
 
 Syscall param exchangedata(path2) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:398)
 
 Syscall param exchangedata(options) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:398)
 
 Syscall param exchangedata(path1) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:398)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 Syscall param exchangedata(path2) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:398)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 -----------------------------------------------------
@@ -624,34 +558,27 @@ x2000106(262):          __NR_shmat 3s 0m
 -----------------------------------------------------
 Syscall param shmat(shmid) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:447)
 
 Syscall param shmat(shmaddr) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:447)
 
 Syscall param shmat(shmflg) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:447)
 
 -----------------------------------------------------
 x2000107(263):         __NR_shmctl 3s 1m
 -----------------------------------------------------
 Syscall param shmctl(shmid) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:450)
 
 Syscall param shmctl(cmd) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:450)
 
 Syscall param shmctl(buf) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:450)
 
 Syscall param shmctl(IPC_STAT, buf) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:450)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 -----------------------------------------------------
@@ -665,30 +592,24 @@ x2000109(265):         __NR_shmget 3s 0m
 -----------------------------------------------------
 Syscall param shmget(key) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:456)
 
 Syscall param shmget(size) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:456)
 
 Syscall param shmget(shmflg) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:456)
 
 -----------------------------------------------------
 x200010c(268):       __NR_sem_open 2s 1m
 -----------------------------------------------------
 Syscall param sem_open(name) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:462)
 
 Syscall param sem_open(oflag) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:462)
 
 Syscall param sem_open(name) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:462)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 -----------------------------------------------------
@@ -709,13 +630,12 @@ Syscall param sem_close(sem) contains uninitialised byte(s)
 -----------------------------------------------------
 x200010e(270):     __NR_sem_unlink 1s 1m
 -----------------------------------------------------
+
 Syscall param sem_unlink(name) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:472)
 
 Syscall param sem_unlink(name) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:472)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 -----------------------------------------------------
@@ -741,19 +661,15 @@ x2000113(275):       __NR_sem_init 3s 1m
 -----------------------------------------------------
 Syscall param sem_init(sem) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:486)
 
 Syscall param sem_init(pshared) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:486)
 
 Syscall param sem_init(value) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:486)
 
 Syscall param sem_init(sem) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:486)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 -----------------------------------------------------
@@ -761,11 +677,9 @@ x2000114(276):    __NR_sem_destroy 1s 1m
 -----------------------------------------------------
 Syscall param sem_destroy(sem) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:489)
 
 Syscall param sem_destroy(sem) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:489)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 -----------------------------------------------------
@@ -773,48 +687,38 @@ x2000117(279):  __NR_stat_extended 4s 4m
 -----------------------------------------------------
 Syscall param stat_extended(file_name) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:497)
 
 Syscall param stat_extended(buf) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:497)
 
 Syscall param stat_extended(fsacl) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:497)
 
 Syscall param stat_extended(fsacl_size) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:497)
 
 Syscall param stat_extended(file_name) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:497)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 Syscall param stat_extended(buf) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:497)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 Syscall param stat_extended(fsacl_size) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:497)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 Syscall param stat_extended(file_name) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:500)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 Syscall param stat_extended(buf) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:500)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 Syscall param stat_extended(fsacl) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:500)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 -----------------------------------------------------
@@ -822,97 +726,72 @@ x2000118(280): __NR_lstat_extended 4s 4m
 -----------------------------------------------------
 Syscall param lstat_extended(file_name) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:503)
 
 Syscall param lstat_extended(buf) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:503)
 
 Syscall param lstat_extended(fsacl) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:503)
 
 Syscall param lstat_extended(fsacl_size) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:503)
 
 Syscall param lstat_extended(file_name) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:503)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 Syscall param lstat_extended(buf) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:503)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 Syscall param lstat_extended(fsacl_size) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:503)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 Syscall param lstat_extended(file_name) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:506)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 Syscall param lstat_extended(buf) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:506)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 Syscall param lstat_extended(fsacl) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:506)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 -----------------------------------------------------
-x2000119(280): __NR_fstat_extended 4s 3m
+x2000119(280): __NR_fstat_extended 4s 2m
 -----------------------------------------------------
 Syscall param fstat_extended(fd) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:509)
 
 Syscall param fstat_extended(buf) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:509)
 
 Syscall param fstat_extended(fsacl) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:509)
 
 Syscall param fstat_extended(fsacl_size) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:509)
-
-Syscall param fstat_extended(fd) points to unaddressable byte(s)
-   ...
-   by 0x........: main (scalar.c:509)
- Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 Syscall param fstat_extended(buf) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:509)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 Syscall param fstat_extended(fsacl_size) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:509)
- Address 0x........ is not stack'd, malloc'd or (recently) free'd
-
-Syscall param fstat_extended(fd) points to unaddressable byte(s)
-   ...
-   by 0x........: main (scalar.c:512)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
+-----------------------------------------------------
+x2000119(280): __NR_fstat_extended 0s 2m
+-----------------------------------------------------
 Syscall param fstat_extended(buf) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:512)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 Syscall param fstat_extended(fsacl) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:512)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 -----------------------------------------------------
@@ -920,23 +799,18 @@ x200011c(284):__NR_access_extended 4s 1m
 -----------------------------------------------------
 Syscall param access_extended(entries) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:521)
 
 Syscall param access_extended(size) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:521)
 
 Syscall param access_extended(results) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:521)
 
 Syscall param access_extended(uid) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:521)
 
 Syscall param access_extended(entries) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:521)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 -----------------------------------------------------
@@ -965,19 +839,15 @@ x200013b(315):    __NR_aio_suspend 1s 0m
 -----------------------------------------------------
 Syscall param aio_suspend(aiocbp) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:563)
 
 Syscall param aio_suspend(nent) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:563)
 
 Syscall param aio_suspend(timeout) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:563)
 
 Syscall param aio_suspend(list) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:563)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 -----------------------------------------------------
@@ -991,11 +861,9 @@ x200013e(318):       __NR_aio_read 1s 1m
 -----------------------------------------------------
 Syscall param aio_read(aiocbp) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:571)
 
 Syscall param aio_read(aiocbp) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:571)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 -----------------------------------------------------
@@ -1003,11 +871,9 @@ x200013f(319):      __NR_aio_write 1s 1m
 -----------------------------------------------------
 Syscall param aio_write(aiocbp) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:574)
 
 Syscall param aio_write(aiocbp) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:574)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 -----------------------------------------------------
@@ -1021,22 +887,21 @@ x2000148(328): __NR___pthread_kill 2s 0m
 -----------------------------------------------------
 Syscall param __pthread_kill(thread) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:590)
 
 Syscall param __pthread_kill(sig) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:590)
 
 -----------------------------------------------------
 x2000149(329):__NR___pthread_sigmask 3s 0m
 -----------------------------------------------------
+Syscall param __pthread_sigmask(how) contains uninitialised byte(s)
+   ...
+
 Syscall param __pthread_sigmask(set) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:593)
 
 Syscall param __pthread_sigmask(oldset) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:593)
 
 -----------------------------------------------------
 (335):           old utrace
@@ -1046,38 +911,41 @@ x2000155(341):__NR_stat64_extended 4s 4m
 -----------------------------------------------------
 Syscall param stat64_extended(file_name) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:613)
 
 Syscall param stat64_extended(buf) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:613)
 
 Syscall param stat64_extended(fsacl) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:613)
 
 Syscall param stat64_extended(fsacl_size) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:613)
 
 Syscall param stat64_extended(file_name) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:613)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 Syscall param stat64_extended(buf) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:613)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 Syscall param stat64_extended(fsacl_size) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:613)
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+-----------------------------------------------------
+x2000155(341):__NR_stat64_extended 0s 3m
+-----------------------------------------------------
+Syscall param stat64_extended(file_name) points to unaddressable byte(s)
+   ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+Syscall param stat64_extended(buf) points to unaddressable byte(s)
+   ...
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 Syscall param stat64_extended(fsacl) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:616)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 -----------------------------------------------------
@@ -1085,72 +953,75 @@ x2000156(342):__NR_lstat64_extended 4s 4m
 -----------------------------------------------------
 Syscall param lstat64_extended(file_name) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:619)
 
 Syscall param lstat64_extended(buf) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:619)
 
 Syscall param lstat64_extended(fsacl) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:619)
 
 Syscall param lstat64_extended(fsacl_size) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:619)
 
 Syscall param lstat64_extended(file_name) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:619)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 Syscall param lstat64_extended(buf) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:619)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 Syscall param lstat64_extended(fsacl_size) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:619)
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+-----------------------------------------------------
+x2000156(342):__NR_lstat64_extended 0s 3m
+-----------------------------------------------------
+Syscall param lstat64_extended(file_name) points to unaddressable byte(s)
+   ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+Syscall param lstat64_extended(buf) points to unaddressable byte(s)
+   ...
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 Syscall param lstat64_extended(fsacl) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:622)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 -----------------------------------------------------
-x2000157(342):__NR_fstat64_extended 4s 3m
+x2000157(342):__NR_fstat64_extended 4s 2m
 -----------------------------------------------------
 Syscall param fstat64_extended(fd) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:625)
 
 Syscall param fstat64_extended(buf) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:625)
 
 Syscall param fstat64_extended(fsacl) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:625)
 
 Syscall param fstat64_extended(fsacl_size) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:625)
 
 Syscall param fstat64_extended(buf) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:625)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 Syscall param fstat64_extended(fsacl_size) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:625)
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+-----------------------------------------------------
+x2000157(342):__NR_fstat64_extended 0s 2m
+-----------------------------------------------------
+Syscall param fstat64_extended(buf) points to unaddressable byte(s)
+   ...
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 Syscall param fstat64_extended(fsacl) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:628)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 -----------------------------------------------------
@@ -1158,82 +1029,95 @@ x200015b(347):    __NR_getfsstat64 3s 1m
 -----------------------------------------------------
 Syscall param getfsstat64(buf) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:637)
 
 Syscall param getfsstat64(bufsize) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:637)
 
 Syscall param getfsstat64(flags) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:637)
 
 Syscall param getfsstat64(buf) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:637)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 -----------------------------------------------------
 (369-373):       unused
 -----------------------------------------------------
 -----------------------------------------------------
-x2000176(374):     __NR_kevent_qos 1s 8m
+x2000176(374):     __NR_kevent_qos 8s 4m
 -----------------------------------------------------
+Syscall param kevent_qos(kq) contains uninitialised byte(s)
+   ...
+
 Syscall param kevent_qos(changelist) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:669)
 
 Syscall param kevent_qos(nchanges) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:669)
+
+Syscall param kevent_qos(eventlist) contains uninitialised byte(s)
+   ...
+
+Syscall param kevent_qos(nevents) contains uninitialised byte(s)
+   ...
 
 Syscall param kevent_qos(data_available) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:669)
 
 Syscall param kevent_qos(flags) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:669)
 
-Syscall param kevent_qos(changelist) points to uninitialised byte(s)
+Syscall param kevent_qos(changelist) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:669)
- Address 0x........ is on thread 1's stack
- in frame #1, created by main (scalar.c:12)
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 Syscall param kevent_qos(eventlist) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:669)
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+Syscall param kevent_qos(data_out) points to unaddressable byte(s)
+   ...
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 -----------------------------------------------------
 (375-379):       unused
 -----------------------------------------------------
 -----------------------------------------------------
-x200018a(394):        __NR_pselect 1s 6m
+x200018a(394):        __NR_pselect 5s 4m
 -----------------------------------------------------
+Syscall param pselect(n) contains uninitialised byte(s)
+   ...
+
 Syscall param pselect(readfds) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:694)
 
 Syscall param pselect(writefds) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:694)
 
-Syscall param pselect(readfds) points to uninitialised byte(s)
+Syscall param pselect(exceptfds) contains uninitialised byte(s)
+   ...
+
+Syscall param pselect(timeout) contains uninitialised byte(s)
    ...
-   by 0x........: main (scalar.c:694)
- Address 0x........ is on thread 1's stack
- in frame #1, created by main (scalar.c:12)
+
+Syscall param pselect(readfds) points to unaddressable byte(s)
+   ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 Syscall param pselect(writefds) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:694)
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 Syscall param pselect(exceptfds) points to unaddressable byte(s)
    ...
-   by 0x........: main (scalar.c:694)
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+Syscall param pselect(timeout) points to unaddressable byte(s)
+   ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+Syscall param pselect(sigmask) points to unaddressable byte(s)
+   ...
  Address 0x........ is not stack'd, malloc'd or (recently) free'd
 
 -----------------------------------------------------
index 897d9e73c2cc97119bc3a6261170120ec705a236..2e10386373521af0290b08d9706e18be926a44a4 100644 (file)
@@ -1,3 +1,4 @@
 prog: scalar
 vgopts: -q --error-limit=no
 args: < scalar.c
+stderr_filter: filter_scalar
index 788757263e98697f110316aeb584e92eea8afd4e..9ad0aa0938bfa8c7205d9d4606ec6489ce106ade 100644 (file)
@@ -1,3 +1,4 @@
 prog: scalar_nocancel
 vgopts: -q --error-limit=no
 args: < scalar_nocancel.c
+stderr_filter: filter_scalar