diff options
author | rrs <rrs@FreeBSD.org> | 2010-06-09 16:42:42 +0000 |
---|---|---|
committer | rrs <rrs@FreeBSD.org> | 2010-06-09 16:42:42 +0000 |
commit | 73f9a7ebf634af6867817d2c2fa9be7f8eed2658 (patch) | |
tree | c6f90684e05b5bb8c66d9b41c1f6ff9f194a25f1 /contrib/llvm | |
parent | d1171df90509ec32624204192919e7fc10b9526b (diff) | |
download | FreeBSD-src-73f9a7ebf634af6867817d2c2fa9be7f8eed2658.zip FreeBSD-src-73f9a7ebf634af6867817d2c2fa9be7f8eed2658.tar.gz |
Fix serveral bugs all having to do with freeing an
sctp_inpcb:
1) Make sure not to remove the flag on the PCB until
after the close() caller is back in control with the
lock. Otherwise a quickly freeing assoc could kill the
inpcb and cause a panic.
2) Make sure all calls to log_closing have not released
the locks before calling the log function, we don't
want the logging function to crash us due to a freed
inpcb.
3) Make sure that when we get to the end, we release all
locks (after removing them from view) and as long as
we are NOT the inp-kill timer removing the inp, call
the callout_drain() function so a racing timer won't
later call in and cause a racing crash.
MFC after: 1 week
Diffstat (limited to 'contrib/llvm')
0 files changed, 0 insertions, 0 deletions