cvs commit: src/sys/netinet tcp_subr.c

Robert Watson rwatson at FreeBSD.org
Sat Dec 25 14:32:44 PST 2004


rwatson     2004-12-25 22:32:44 UTC

  FreeBSD src repository

  Modified files:        (Branch: RELENG_5)
    sys/netinet          tcp_subr.c 
  Log:
  Merge tcp_subr.c:1.210 from HEAD to RELENG_5:
  
    date: 2004/11/23 16:23:13;  author: rwatson;  state: Exp;  lines: +10 -0
    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
  
  Revision   Changes    Path
  1.201.2.7  +10 -0     src/sys/netinet/tcp_subr.c


More information about the cvs-src mailing list