lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Tue, 27 Dec 2011 16:31:36 +0800
From:	zrpeng <zrpeng@...x-info.com>
To:	netdev@...r.kernel.org
Subject: Why network stack not reply RST

Hi:
    Why network stack not reply RST?
    I am doing test recently based on kernel 2.6.32. In my case:
    1) The server application closed the established socket, the network stack 
sent FIN to client. The socket status in kernel's network stack was 
TCP_FIN_WAIT1.
    2) The client sent out a tcp packet with ACK bit set for the server's FIN, 
the packet also took new data.
    3) When the server received the packet, network stack entered "step 5" in 
function "tcp_rcv_state_process".
    4) Then came to 'case TCP_FIN_WAIT1:'
    5) Then came to judgement
if (tp->linger2 < 0 ||
					    (TCP_SKB_CB(skb)->end_seq != TCP_SKB_CB(skb)->seq &&
					     after(TCP_SKB_CB(skb)->end_seq - th->fin, tp->rcv_nxt))) {
.....
}
    6) Because the previous packet took data and ACK (for the FIN), it entered 
the judgement. So, the socket is deleted in function 'tcp_done(sk)'.
    7) No TCP message was sent back to client side from then on, and client 
was left in LAST_ACK status.

    My questions are:
    1) Is this process correct? I think the server should sent RST to client, 
is this correct?
    2) What's the using of judgement 
 (TCP_SKB_CB(skb)->end_seq != TCP_SKB_CB(skb)->seq &&
					     after(TCP_SKB_CB(skb)->end_seq - th->fin, tp->rcv_nxt)

       The code exists from kernel 2.3.41 and 2.3.42. 

    Thank you very much!
    Best Regards.

    Peng Zhaoran from Linx-Info Tech.
    
    www.linx-info.com
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ