• Wei Yongjun's avatar
    tcp: missing check ACK flag of received segment in FIN-WAIT-2 state · 1ac530b3
    Wei Yongjun authored
    RFC0793 defined that in FIN-WAIT-2 state if the ACK bit is off drop
    the segment and return[Page 72]. But this check is missing in function
    tcp_timewait_state_process(). This cause the segment with FIN flag but
    no ACK has two diffent action:
    
    Case 1:
        Node A                      Node B
                  <-------------    FIN,ACK
                                    (enter FIN-WAIT-1)
        ACK       ------------->
                                    (enter FIN-WAIT-2)
        FIN       ------------->    discard
                                    (move sk to tw list)
    
    Case 2:
        Node A                      Node B
                  <-------------    FIN,ACK
                                    (enter FIN-WAIT-1)
        ACK       ------------->
                                    (enter FIN-WAIT-2)
                                    (move sk to tw list)
        FIN       ------------->
    
                  <-------------    ACK
    
    This patch fixed the problem.
    Signed-off-by: default avatarWei Yongjun <yjwei@cn.fujitsu.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    1ac530b3
tcp_minisocks.c 22.7 KB