git: AF_UNIX: Hold a reference of the unp_conn before executing

看板DFBSD_commit作者時間14年前 (2011/05/17 07:33), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
commit 76d4bfa31c73732ae74b63f8fe1cbdc9d8df7a52 Author: Sepherosa Ziehau <sephe@dragonflybsd.org> Date: Wed Apr 27 15:10:03 2011 +0800 AF_UNIX: Hold a reference of the unp_conn before executing blocking code Since unp_token will be automaticly released upon execution of blocking code, close of unp_conn could race any code paths that references unp_conn after executing blocking code. To fix these races, we simply increment the reference count of the unp_conn before executig any possibly blocking code and release the reference count of unp_conn, which may release unp_conn itself. This _currently_ does not suffer 0-ref race, since unp_token is always being held. Summary of changes: sys/kern/uipc_usrreq.c | 77 ++++++++++++++++++++++++++++++++++++++++------- sys/sys/unpcb.h | 2 +- 2 files changed, 66 insertions(+), 13 deletions(-) http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/76d4bfa31c73732ae74b63f8fe1cbdc9d8df7a52 -- DragonFly BSD source repository
文章代碼(AID): #1DqRGi5l (DFBSD_commit)