diff --git a/src/flow-worker.c b/src/flow-worker.c index 677c7f1c3e..984b81a875 100644 --- a/src/flow-worker.c +++ b/src/flow-worker.c @@ -562,7 +562,12 @@ static TmEcode FlowWorker(ThreadVars *tv, Packet *p, void *data) if (p->flow != NULL) { DEBUG_ASSERT_FLOW_LOCKED(p->flow); - if (p->proto == IPPROTO_TCP) { + if (FlowIsBypassed(p->flow)) { + FlowCleanupAppLayer(p->flow); + if (p->proto == IPPROTO_TCP) { + StreamTcpSessionCleanup(p->flow->protoctx); + } + } else if (p->proto == IPPROTO_TCP && p->flow->protoctx) { FLOWWORKER_PROFILING_START(p, PROFILE_FLOWWORKER_TCPPRUNE); StreamTcpPruneSession(p->flow, p->flowflags & FLOW_PKT_TOSERVER ? STREAM_TOSERVER : STREAM_TOCLIENT);