Skip to content
  • Randall Stewart's avatar
    tcp: Missing mfree in rack and bbr · ba1b3e48
    Randall Stewart authored
    Recently (Nov) we added logic that protects against a peer negotiating a timestamp, and
    then not including a timestamp. This involved in the input path doing a goto done_with_input
    label. Now I suspect the code was cribbed from one in Rack that has to do with the SYN.
    This had a bug, i.e. it should have a m_freem(m) before going to the label (bbr had this
    missing m_freem() but rack did not). This then caused the missing m_freem to show
    up in both BBR and Rack. Also looking at the code referencing m->m_pkthdr.lro_nsegs
    later (after processing) is not a good idea, even though its only for logging. Best to
    copy that off before any frees can take place.
    
    Reviewed by: mtuexen
    Sponsored by: Netflix Inc
    Differential Revision:	https://reviews.freebsd.org/D30727
    ba1b3e48