]> granicus.if.org Git - strace/blobdiff - syscall.c
Fix the length argument passed from print_iovec to decode_netlink
[strace] / syscall.c
index 89491abb797299e2ab53ea9bbc17c8cdde13f259..3e91880c956fa1924689dec90b562fc61e2802bd 100644 (file)
--- a/syscall.c
+++ b/syscall.c
@@ -76,8 +76,6 @@
 #define TP TRACE_PROCESS
 #define TS TRACE_SIGNAL
 #define TM TRACE_MEMORY
-#define TSC TRACE_SCHED
-#define TCL TRACE_CLOCK
 #define TSF TRACE_STATFS
 #define NF SYSCALL_NEVER_FAILS
 #define MA MAX_ARGS
@@ -114,8 +112,6 @@ static const struct_sysent sysent2[] = {
 #undef TP
 #undef TS
 #undef TM
-#undef TSC
-#undef TCL
 #undef TSF
 #undef NF
 #undef MA
@@ -757,7 +753,7 @@ trace_syscall_exiting(struct tcb *tcp)
        struct timeval tv;
 
        /* Measure the exit time as early as possible to avoid errors. */
-       if (Tflag || cflag)
+       if ((Tflag || cflag) && !(filtered(tcp) || hide_log(tcp)))
                gettimeofday(&tv, NULL);
 
 #ifdef USE_LIBUNWIND
@@ -767,13 +763,14 @@ trace_syscall_exiting(struct tcb *tcp)
        }
 #endif
 
+       if (filtered(tcp) || hide_log(tcp))
+               goto ret;
+
        get_regs(tcp->pid);
 #if SUPPORTED_PERSONALITIES > 1
        update_personality(tcp, tcp->currpers);
 #endif
        int res = (get_regs_error ? -1 : get_syscall_result(tcp));
-       if (filtered(tcp) || hide_log(tcp))
-               goto ret;
 
        if (syserror(tcp) && syscall_tampered(tcp))
                tamper_with_syscall_exiting(tcp);