]> granicus.if.org Git - strace/commitdiff
Treat execveat as an execve family syscall
authorDmitry V. Levin <ldv@altlinux.org>
Sat, 26 Nov 2016 16:08:10 +0000 (16:08 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Sat, 26 Nov 2016 16:08:10 +0000 (16:08 +0000)
* syscall.c (trace_syscall_entering): Clear hide_log_until_execve flag
also when SEN_execveat is encountered.

syscall.c

index 57c2945a4a24fd44357924844c287068737ad514..be88001613b2a2ed4f50720ce6f34e0bde2d9e44 100644 (file)
--- a/syscall.c
+++ b/syscall.c
@@ -1086,14 +1086,6 @@ trace_syscall_entering(struct tcb *tcp)
                decode_mips_subcall(tcp);
 #endif
 
-       if (   SEN_execve == tcp->s_ent->sen
-# if defined(SPARC) || defined(SPARC64)
-           || SEN_execv == tcp->s_ent->sen
-# endif
-          ) {
-               hide_log_until_execve = 0;
-       }
-
 #if defined(SYS_socket_subcall) || defined(SYS_ipc_subcall)
        switch (tcp->s_ent->sen) {
 # ifdef SYS_socket_subcall
@@ -1109,6 +1101,16 @@ trace_syscall_entering(struct tcb *tcp)
        }
 #endif
 
+       switch (tcp->s_ent->sen) {
+               case SEN_execve:
+               case SEN_execveat:
+#if defined SPARC || defined SPARC64
+               case SEN_execv:
+#endif
+                       hide_log_until_execve = 0;
+                       break;
+       }
+
        if (!(tcp->qual_flg & QUAL_TRACE)
         || (tracing_paths && !pathtrace_match(tcp))
        ) {