Fix execve handling

Andreas Schwab schwab at suse.de
Mon Jun 28 05:02:10 UTC 2004


This moves the setting of TCB_WAITEXECVE from sys_execve to internal_exec,
so that it is handled even when execve is not explicitly traced.

Andreas.

2004-06-28  Andreas Schwab  <schwab at suse.de>

	* process.c (internal_exec): Move TCB_WAITEXECVE handling here.
	(sys_execve): Remove it here.

--- process.c
+++ process.c
@@ -1706,12 +1706,6 @@
 			tprintf("]");
 		}
 	}
-#if defined LINUX && defined TCB_WAITEXECVE
-	if (exiting(tcp) && syserror(tcp))
-		tcp->flags &= ~TCB_WAITEXECVE;
-	else
-		tcp->flags |= TCB_WAITEXECVE;
-#endif /* LINUX && TCB_WAITEXECVE */
 	return 0;
 }
 
@@ -1737,6 +1731,12 @@
 	if (exiting(tcp) && !syserror(tcp) && followfork)
 		fixvfork(tcp);
 #endif /* SUNOS4 */
+#if defined LINUX && defined TCB_WAITEXECVE
+	if (exiting(tcp) && syserror(tcp))
+		tcp->flags &= ~TCB_WAITEXECVE;
+	else
+		tcp->flags |= TCB_WAITEXECVE;
+#endif /* LINUX && TCB_WAITEXECVE */
 	return 0;
 }
 

-- 
Andreas Schwab, SuSE Labs, schwab at suse.de
SuSE Linux AG, Maxfeldstraße 5, 90409 Nürnberg, Germany
Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."




More information about the Strace-devel mailing list