]> 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, 11 May 2023 14:35:41 +0000 (16:35 +0200)
src/stream-tcp.c
src/stream-tcp.h

index 5e9f7cdbf3ddb94196e321415e9121d6eeddf7f6..3092324423e84259771c90f6ab0e9aeb82952176 100644 (file)
@@ -5727,6 +5727,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 " direction %s pkt_src %s", p->pcap_cnt,
@@ -5739,11 +5744,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 */
@@ -5787,7 +5787,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 e9f3439f38fa1a48c07260aecae00f18ec11ef6a..6cea41dabda8addeb1e5e69b380d931eba46bd1f 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 */