git: kernel - Close small race in kqueue
Matthew Dillon
dillon at crater.dragonflybsd.org
Thu Sep 23 17:28:39 PDT 2010
commit 8e8e1c56e4ab8226e7fcc3ee738f7f9b023f85ea
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Thu Sep 23 17:24:53 2010 -0700
kernel - Close small race in kqueue
* Normalize the kn_status reprocessing code to close a race.
A knote_detach_and_drop() during a descriptor close can set
KN_DELETING and return, leaving a knote undergoing processing
by another thread marked deleted.
If the other thread is trying to execute a filter the filter can
wind up being run after the file pointer has been detached
from the knote, resulting in a panic.
* All KN_DELETING and KN_WAITING flags also now set KN_REPROCESS and
all KN_REPROCESS handling is dealt with the same way. The filter
is run if KN_REPROCESS is not set and if it is set any KN_DELETING
and KN_WAITING flags are dealt with before the filter is run.
Summary of changes:
sys/kern/kern_event.c | 56 ++++++++++++++++++++++++++++++------------------
1 files changed, 35 insertions(+), 21 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/8e8e1c56e4ab8226e7fcc3ee738f7f9b023f85ea
--
DragonFly BSD source repository
More information about the Commits
mailing list