lwip-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lwip-devel] [bug #48328] Fatal RST/ACK loop caused by commit "fixed bug


From: Axel Lin
Subject: [lwip-devel] [bug #48328] Fatal RST/ACK loop caused by commit "fixed bug #48170"
Date: Tue, 28 Jun 2016 10:45:09 +0000 (UTC)
User-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.75 Safari/537.36

Follow-up Comment #1, bug #48328 (project lwip):

Does below change work for you?
I found it on
https://github.com/tabascoeye/lwip/commit/a59a9c102c924cca420dfbd5063fbcfb8e560bac

diff --git a/src/core/tcp_in.c b/src/core/tcp_in.c
index b26f8e6..1822206 100644
--- a/src/core/tcp_in.c
+++ b/src/core/tcp_in.c
@@ -703,8 +703,8 @@ tcp_process(struct tcp_pcb *pcb)
 
   /* Process incoming RST segments. */
   if (flags & TCP_RST) {
-    /* First, determine if the reset is acceptable. (in case of RST only if
the sequence number matches) */
-    if (ackno == pcb->snd_nxt) {
+    /* First, determine if the reset is acceptable. (in case of RST only if
the sequence number matches, special case for SYN_SENT state) */
+    if (((pcb->state == SYN_SENT) && (ackno == pcb->snd_nxt)) || (seqno ==
pcb->rcv_nxt)) {
       LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_process: Connection RESET\n"));
       LWIP_ASSERT("tcp_input: pcb->state != CLOSED", pcb->state != CLOSED);
       recv_flags |= TF_RESET;


Axel

    _______________________________________________________

Reply to this item at:

  <http://savannah.nongnu.org/bugs/?48328>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.nongnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]