Consistently only use one end of the pipe in the parent and debugger
processes and do not rely on EOF due to a close() in the debugger. PR: 200489 Differential Revision: https://reviews.freebsd.org/D2674 Reviewed by: kib, ngie, rodrigc
This commit is contained in:
parent
73fe130441
commit
eddb85c663
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=283836
@ -304,7 +304,7 @@ ATF_TC_BODY(ptrace__parent_sees_exit_after_unrelated_debugger, tc)
|
||||
ATF_REQUIRE(write(dpipe[1], &c, sizeof(c)) == sizeof(c));
|
||||
|
||||
/* Wait for parent's failed wait. */
|
||||
ATF_REQUIRE(read(dpipe[1], &c, sizeof(c)) == 0);
|
||||
ATF_REQUIRE(read(dpipe[1], &c, sizeof(c)) == sizeof(c));
|
||||
|
||||
wpid = waitpid(child, &status, 0);
|
||||
ATF_REQUIRE(wpid == child);
|
||||
@ -313,6 +313,7 @@ ATF_TC_BODY(ptrace__parent_sees_exit_after_unrelated_debugger, tc)
|
||||
|
||||
exit(0);
|
||||
}
|
||||
close(dpipe[1]);
|
||||
|
||||
/* Parent process. */
|
||||
|
||||
@ -365,10 +366,11 @@ ATF_TC_BODY(ptrace__parent_sees_exit_after_unrelated_debugger, tc)
|
||||
ATF_REQUIRE(wpid == 0);
|
||||
|
||||
/* Signal the debugger to wait for the child. */
|
||||
close(dpipe[0]);
|
||||
ATF_REQUIRE(write(dpipe[0], &c, sizeof(c)) == sizeof(c));
|
||||
|
||||
/* Wait for the debugger. */
|
||||
ATF_REQUIRE(read(dpipe[1], &c, sizeof(c)) == 0);
|
||||
ATF_REQUIRE(read(dpipe[0], &c, sizeof(c)) == 0);
|
||||
close(dpipe[0]);
|
||||
|
||||
/* The child process should now be ready. */
|
||||
wpid = waitpid(child, &status, WNOHANG);
|
||||
|
Loading…
Reference in New Issue
Block a user