]> granicus.if.org Git - strace/commitdiff
Do not print too many arguments of socketcall syscall
authorDmitry V. Levin <ldv@altlinux.org>
Thu, 21 Jul 2016 11:47:20 +0000 (11:47 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Thu, 21 Jul 2016 12:32:14 +0000 (12:32 +0000)
* socketcall.c (SYS_FUNC(socketcall)): Print just "call" and "args"
syscall arguments.
* tests/socketcall.c (test_socketcall): Update expected output.
* tests/socketcall.test: Likewise.

socketcall.c
tests/socketcall.c
tests/socketcall.test

index 3f1882136e593a135a39291d9a60d11a9bf9aeef..9f48a104525602634b4140ed9167f3bd01d6d51f 100644 (file)
@@ -38,9 +38,8 @@ SYS_FUNC(socketcall)
        else
                tprintf("%d", call);
 
-       unsigned int i;
-       for (i = 1; i < MAX_ARGS; ++i)
-               tprintf(", %#lx", tcp->u_arg[i]);
+       tprints(", ");
+       printaddr(tcp->u_arg[1]);
 
        return RVAL_DECODED;
 }
index ad1803bef6fadfb129fd2b2a374a5a3cc9d5691d..5ccddc478e2c217215318874d90a87545c3debed 100644 (file)
@@ -54,28 +54,19 @@ static void *efault;
 static void
 test_socketcall(const int i, const void *const addr)
 {
-       static const unsigned long a[] = {
-               (unsigned long) 0xface2fedbadc2ded,
-               (unsigned long) 0xface3fedbadc3ded,
-               (unsigned long) 0xface4fedbadc4ded,
-               (unsigned long) 0xface5fedbadc5ded
-       };
        const unsigned long call =
                (unsigned long) 0xfacefeed00000000 | (unsigned int) i;
 
-       long rc = syscall(__NR_socketcall, call, addr,
-                         a[0], a[1], a[2], a[3]);
+       long rc = syscall(__NR_socketcall, call, addr);
 
        if (i < sc_min || i > sc_max) {
-               printf("socketcall(%d, %p, %#lx, %#lx, %#lx, %#lx)"
-                      " = %ld %s (%m)\n", (int) call, addr,
-                      a[0], a[1], a[2], a[3], rc, errno2name());
+               printf("socketcall(%d, %p) = %ld %s (%m)\n",
+                      (int) call, addr, rc, errno2name());
        } else if (addr == efault) {
                const char *const str = xlookup_uint(socketcalls, i);
                assert(str);
-               printf("socketcall(%s, %p, %#lx, %#lx, %#lx, %#lx)"
-                      " = %ld %s (%m)\n", str, addr, a[0], a[1], a[2], a[3],
-                      rc, errno2name());
+               printf("socketcall(%s, %p) = %ld %s (%m)\n",
+                      str, addr, rc, errno2name());
        }
 }
 int
index b12ac02ee0199d390fbea6c23bf3d6954205596c..959bc83d4721a8270973ffa7c07c802a3f336abc 100755 (executable)
@@ -3,4 +3,4 @@
 # Check decoding of socketcall syscall.
 
 . "${srcdir=.}/init.sh"
-run_strace_match_diff
+run_strace_match_diff -a20