Author: trasz
Date: Tue Sep  6 17:22:40 2011
New Revision: 225426
URL: http://svn.freebsd.org/changeset/base/225426

Log:
  Work around a kernel panic triggered by forkbomb with an rctl rule
  such as j:name:maxproc:sigkill=100.  Proper fix - deferring psignal
  to a taskqueue - is somewhat complicated and thus will happen
  after 9.0.
  
  Approved by:  re (kib)

Modified:
  head/sys/kern/kern_rctl.c

Modified: head/sys/kern/kern_rctl.c
==============================================================================
--- head/sys/kern/kern_rctl.c   Tue Sep  6 17:21:39 2011        (r225425)
+++ head/sys/kern/kern_rctl.c   Tue Sep  6 17:22:40 2011        (r225426)
@@ -363,6 +363,17 @@ rctl_enforce(struct proc *p, int resourc
                             rule->rr_action));
 
                        /*
+                        * We're supposed to send a signal, but the process
+                        * is not fully initialized yet, probably because we
+                        * got called from fork1().  For now just deny the
+                        * allocation instead.
+                        */
+                        if (p->p_state != PRS_NORMAL) {
+                               should_deny = 1;
+                               continue;
+                       }
+
+                       /*
                         * We're using the fact that RCTL_ACTION_SIG* values
                         * are equal to their counterparts from sys/signal.h.
                         */
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to