Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 16 Sep 2015 16:40:08 +0000 (UTC)
From:      John Baldwin <jhb@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r287864 - head/sys/kern
Message-ID:  <201509161640.t8GGe8KD082156@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jhb
Date: Wed Sep 16 16:40:07 2015
New Revision: 287864
URL: https://svnweb.freebsd.org/changeset/base/287864

Log:
  When a process group leader exits, all of the processes in the group are
  sent SIGHUP and SIGCONT if any of the processes are stopped.  Currently this
  behavior is triggered for any type of process stop including ptrace() stops
  and transient stops for single threading during exit() and execve().
  Thus, if a debugger is attached to a process in a group when the leader
  exits, the entire group can be HUPed.  Instead, only send the signals if a
  process in the group is stopped due to SIGSTOP.
  
  PR:		201149
  Reviewed by:	kib
  MFC after:	1 week
  Differential Revision:	https://reviews.freebsd.org/D3681

Modified:
  head/sys/kern/kern_proc.c

Modified: head/sys/kern/kern_proc.c
==============================================================================
--- head/sys/kern/kern_proc.c	Wed Sep 16 16:11:45 2015	(r287863)
+++ head/sys/kern/kern_proc.c	Wed Sep 16 16:40:07 2015	(r287864)
@@ -694,7 +694,7 @@ orphanpg(pg)
 
 	LIST_FOREACH(p, &pg->pg_members, p_pglist) {
 		PROC_LOCK(p);
-		if (P_SHOULDSTOP(p)) {
+		if (P_SHOULDSTOP(p) == P_STOPPED_SIG) {
 			PROC_UNLOCK(p);
 			LIST_FOREACH(p, &pg->pg_members, p_pglist) {
 				PROC_LOCK(p);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201509161640.t8GGe8KD082156>