diff options
author | rwatson <rwatson@FreeBSD.org> | 2004-11-23 16:23:13 +0000 |
---|---|---|
committer | rwatson <rwatson@FreeBSD.org> | 2004-11-23 16:23:13 +0000 |
commit | 93fe353ec5725020e33859a4dcde70dd9c0334f3 (patch) | |
tree | b67ae46e3a46c39c67d0c18cfa67d7950a7ab0a6 /sys/netinet/tcp_timer.c | |
parent | 32947f494f39ebc1429459b4beb89f1c642abe0a (diff) | |
download | FreeBSD-src-93fe353ec5725020e33859a4dcde70dd9c0334f3.zip FreeBSD-src-93fe353ec5725020e33859a4dcde70dd9c0334f3.tar.gz |
Assert the inpcb lock in tcp_twstart(), which does both read-modify-write
on the tcpcb, but also calls into tcp_close() and tcp_twrespond().
Annotate that tcp_twrecycleable() requires the inpcb lock because it does
a series of non-atomic reads of the tcpcb, but is currently called
without the inpcb lock by the caller. This is a bug.
Assert the inpcb lock in tcp_twclose() as it performs a read-modify-write
of the timewait structure/inpcb, and calls in_pcbdetach() which requires
the lock.
Assert the inpcb lock in tcp_twrespond(), as it performs multiple
non-atomic reads of the tcptw and inpcb structures, as well as calling
mac_create_mbuf_from_inpcb(), tcpip_fillheaders(), which require the
inpcb lock.
MFC after: 2 weeks
Diffstat (limited to 'sys/netinet/tcp_timer.c')
0 files changed, 0 insertions, 0 deletions