]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
stream: avoid ineffective state bump in TFO
authorVictor Julien <vjulien@oisf.net>
Fri, 22 Aug 2025 14:30:29 +0000 (16:30 +0200)
committerVictor Julien <victor@inliniac.net>
Mon, 8 Sep 2025 16:47:16 +0000 (18:47 +0200)
Do not set session state to established, as it is unconditionally
overwritten to syn_recv afterwards.

src/stream-tcp.c

index 9270dba1d7f071636587828340567908bd9d6f6d..3921c7030d74fbd133f4ecdabf07b5da227356c9 100644 (file)
@@ -1859,10 +1859,7 @@ static void TcpStateQueueInitFromPktSynAck(const Packet *p, TcpStateQueue *q)
 {
 #if defined(DEBUG_VALIDATION) || defined(DEBUG)
     const TcpSession *ssn = p->flow->protoctx;
-    if ((ssn->flags & STREAMTCP_FLAG_TCP_FAST_OPEN) == 0)
-        BUG_ON(ssn->state != TCP_SYN_SENT);
-    else
-        BUG_ON(ssn->state != TCP_ESTABLISHED);
+    BUG_ON(ssn->state != TCP_SYN_SENT);
 #endif
     memset(q, 0, sizeof(*q));
 
@@ -2020,7 +2017,6 @@ static int StreamTcpPacketStateSynSent(
                 return -1;
             }
             ssn->flags |= STREAMTCP_FLAG_TCP_FAST_OPEN;
-            StreamTcpPacketSetState(p, ssn, TCP_ESTABLISHED);
         }
 
         const bool ts_mismatch = !StateSynSentValidateTimestamp(ssn, p);