git: socket: Fix soabort() race if crfree() blocks in soinherit().
Sepherosa Ziehau
sephe at crater.dragonflybsd.org
Wed Aug 12 18:38:23 PDT 2015
commit 838d26827a791d405195ac3e780eae1eb7d3dc0e
Author: Sepherosa Ziehau <sephe at dragonflybsd.org>
Date: Thu Aug 13 09:30:23 2015 +0800
socket: Fix soabort() race if crfree() blocks in soinherit().
In soinherit(), if the accepted socket was on the temp list
and crfree() blocked, the owner netisr's soabort() would cause
use-after-free.
After this commit, we move one accepted socket each time, so
that the potential blocking crfree() will not cause trouble
for us. And we no longer allow inheritting incomplete queue,
which could be dropped by definition.
Pointed-out-by: dillon@
Summary of changes:
sys/kern/uipc_socket.c | 94 ++++++++++++++++++++++++--------------------------
1 file changed, 46 insertions(+), 48 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/838d26827a791d405195ac3e780eae1eb7d3dc0e
--
DragonFly BSD source repository
More information about the Commits
mailing list