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-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAEk7JKYBm7z6cuJ=MB8EoFR9y1v0odtVbwYD_XhiQL=-Bszftg@mail.gmail.com>
Date:	Thu, 29 Dec 2011 11:04:10 +0800
From:	Zhen-Hua Li <lizhenhua.dev@...il.com>
To:	zrpeng <zrpeng@...x-info.com>
Cc:	netdev@...r.kernel.org
Subject: Re: Why network stack not reply RST

Hi,
    Are you sure your client did not called fork() ?  If it has
subprocess, there may be such problems.


On Tue, Dec 27, 2011 at 4:31 PM, zrpeng <zrpeng@...x-info.com> wrote:
> 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
--
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