]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Cause pfind() not to return processes in the PRS_NEW state. As a result,
authorrwatson <rwatson@FreeBSD.org>
Sat, 14 Aug 2004 17:15:16 +0000 (17:15 +0000)
committerrwatson <rwatson@FreeBSD.org>
Sat, 14 Aug 2004 17:15:16 +0000 (17:15 +0000)
commitc7e2313e865d292a348f00799e7c73cb552cda10
treecdaca99d871147747d09c1bfb4d8e90cdc42754a
parent2a8512cc38fa39fbcf9c4168e038528a431cf6cd
Cause pfind() not to return processes in the PRS_NEW state.  As a result,
threads consuming the result of pfind() will not need to check for a NULL
credential pointer or other signs of an incompletely created process.
However, this also means that pfind() cannot be used to test for the
existence or find such a process.  Annotate pfind() to indicate that this
is the case.  A review of curent consumers seems to indicate that this is
not a problem for any of them.  This closes a number of race conditions
that could result in NULL pointer dereferences and related failure modes.
Other related races continue to exist, especially during iteration of the
allproc list without due caution.

Discussed with: tjr, green
sys/kern/kern_proc.c