]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
stream: update no-flow checks
authorVictor Julien <vjulien@oisf.net>
Tue, 25 Apr 2023 08:22:11 +0000 (10:22 +0200)
committerVictor Julien <vjulien@oisf.net>
Thu, 8 Jun 2023 08:07:52 +0000 (10:07 +0200)
(cherry picked from commit 0360cb654293c333e3be70204705fa7ec328512e)

src/stream-tcp.c
src/stream-tcp.h

index 2a921b31df1ab7fb7472a15c8774486b818316f1..c17e42a07a87277daaf48e98d33fe51f077833f7 100644 (file)
@@ -5476,6 +5476,11 @@ int TcpSessionPacketSsnReuse(const Packet *p, const Flow *f, const void *tcp_ssn
 
 TmEcode StreamTcp (ThreadVars *tv, Packet *p, void *data, PacketQueueNoLock *pq)
 {
+    DEBUG_VALIDATE_BUG_ON(p->flow == NULL);
+    if (unlikely(p->flow == NULL)) {
+        return TM_ECODE_OK;
+    }
+
     StreamTcpThread *stt = (StreamTcpThread *)data;
 
     SCLogDebug("p->pcap_cnt %"PRIu64, p->pcap_cnt);
@@ -5487,11 +5492,6 @@ TmEcode StreamTcp (ThreadVars *tv, Packet *p, void *data, PacketQueueNoLock *pq)
         return TM_ECODE_OK;
     }
 
-    if (p->flow == NULL) {
-        StatsIncr(tv, stt->counter_tcp_no_flow);
-        return TM_ECODE_OK;
-    }
-
     HandleThreadId(tv, p, stt);
 
     /* only TCP packets with a flow from here */
@@ -5531,7 +5531,6 @@ TmEcode StreamTcpThreadInit(ThreadVars *tv, void *initdata, void **data)
     stt->counter_tcp_pseudo = StatsRegisterCounter("tcp.pseudo", tv);
     stt->counter_tcp_pseudo_failed = StatsRegisterCounter("tcp.pseudo_failed", tv);
     stt->counter_tcp_invalid_checksum = StatsRegisterCounter("tcp.invalid_checksum", tv);
-    stt->counter_tcp_no_flow = StatsRegisterCounter("tcp.no_flow", tv);
     stt->counter_tcp_syn = StatsRegisterCounter("tcp.syn", tv);
     stt->counter_tcp_synack = StatsRegisterCounter("tcp.synack", tv);
     stt->counter_tcp_rst = StatsRegisterCounter("tcp.rst", tv);
index 48b32a4fb6e30606203c228140676726ad0c01ee..6bea83bb060b81128be544575104946b43dfda88 100644 (file)
@@ -91,8 +91,6 @@ typedef struct StreamTcpThread_ {
     uint16_t counter_tcp_pseudo_failed;
     /** packets rejected because their csum is invalid */
     uint16_t counter_tcp_invalid_checksum;
-    /** TCP packets with no associated flow */
-    uint16_t counter_tcp_no_flow;
     /** sessions reused */
     uint16_t counter_tcp_reused_ssn;
     /** syn pkts */