CVSROOT: /cvs Module name: src Changes by: js...@cvs.openbsd.org 2015/10/29 07:20:44
Modified files: sys/kern : kern_event.c Log message: In knote(), use SLIST_FOREACH_SAFE when walking the klist since a call to an f_event() handler may remove an entry. Currently knote_processexit() calls knote() with NOTE_EXIT, knote() walks the list and calls f_event(), one of these happens to be filt_proc(), which happily SLIST_REMOVEs the NOTE_EXIT note from the same list that knote() is currently walking, then we get back to knote() and go boom... Flushed out by bluhm@'s invalidation change to sys/queue.h and found the hard way by naddy@. ok doug@ nicm@ tedu@