Author: kib
Date: Fri Jul  1 20:11:28 2016
New Revision: 302308
URL: https://svnweb.freebsd.org/changeset/base/302308

Log:
  When a process knote was attached to the process which is already exiting,
  the knote is activated immediately.  If the exit1() later activates
  knotes, such knote is attempted to be activated second time.  Detect
  the condition by zeroed kn_ptr.p_proc pointer, and avoid excessive
  activation.
  
  Before r302235, such knotes were removed from the knlist immediately
  upon activation.
  
  Reported by:  truckman
  Sponsored by: The FreeBSD Foundation
  Approved by:  re (gjb)

Modified:
  head/sys/kern/kern_event.c

Modified: head/sys/kern/kern_event.c
==============================================================================
--- head/sys/kern/kern_event.c  Fri Jul  1 19:58:13 2016        (r302307)
+++ head/sys/kern/kern_event.c  Fri Jul  1 20:11:28 2016        (r302308)
@@ -451,6 +451,9 @@ filt_proc(struct knote *kn, long hint)
        u_int event;
 
        p = kn->kn_ptr.p_proc;
+       if (p == NULL) /* already activated, from attach filter */
+               return (0);
+
        /* Mask off extra data. */
        event = (u_int)hint & NOTE_PCTRLMASK;
 
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to