Set strace_child only in the right branch
"strace_child = pid" assignment was racing in NOMMU case because of vfork (no way to know which process would win). After this change, strace_child is set to nonzero only in one process after [v]fork. Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
This commit is contained in:
parent
fadbf6679c
commit
e8681c926c
3
strace.c
3
strace.c
@ -1204,7 +1204,7 @@ startup_child(char **argv)
|
||||
prctl(PR_SET_PTRACER, PR_SET_PTRACER_ANY);
|
||||
#endif
|
||||
|
||||
strace_child = pid = fork();
|
||||
pid = fork();
|
||||
if (pid < 0) {
|
||||
perror_msg_and_die("fork");
|
||||
}
|
||||
@ -1221,6 +1221,7 @@ startup_child(char **argv)
|
||||
/* We are the tracer */
|
||||
|
||||
if (!daemonized_tracer) {
|
||||
strace_child = pid;
|
||||
if (!use_seize) {
|
||||
/* child did PTRACE_TRACEME, nothing to do in parent */
|
||||
} else {
|
||||
|
Loading…
x
Reference in New Issue
Block a user