svn commit: r351210 - head/tests/sys/kern

Konstantin Belousov kib at FreeBSD.org
Mon Aug 19 09:29:28 UTC 2019


Author: kib
Date: Mon Aug 19 09:29:27 2019
New Revision: 351210
URL: https://svnweb.freebsd.org/changeset/base/351210

Log:
  sys.kern.pdeathsig.signal_delivered_ptrace: fix debugger detach
  
  ptrace(PT_DETACH) requires stopped debuggee, otherwise it fails.  When
  the call fails, the C process is left as debuggee of the process D,
  and might be killed too early if process D exits occurs fast enough.
  
  Since pipes are not closed in the forked children, this resulted in
  the test hanging, since no write occured from C to wake A.
  
  PR:	237657
  Reported and tested by:	lwhsu
  Sponsored by:	The FreeBSD Foundation
  MFC after:	1 week

Modified:
  head/tests/sys/kern/pdeathsig.c

Modified: head/tests/sys/kern/pdeathsig.c
==============================================================================
--- head/tests/sys/kern/pdeathsig.c	Mon Aug 19 07:47:09 2019	(r351209)
+++ head/tests/sys/kern/pdeathsig.c	Mon Aug 19 09:29:27 2019	(r351210)
@@ -305,7 +305,9 @@ ATF_TC_BODY(signal_delivered_ptrace, tc)
 				    WSTOPSIG(status));
 			assert(rc == 0);
 
-			ptrace(PT_DETACH, c_pid, 0, 0);
+			waitpid(c_pid, &status, 0);
+			if (!WIFEXITED(status))
+				ptrace(PT_DETACH, c_pid, 0, 0);
 
 			_exit(0);
 		}


More information about the svn-src-head mailing list