diff --git a/src/stream-tcp-reassemble.c b/src/stream-tcp-reassemble.c index 99f0912d1d..9ff2916bb3 100644 --- a/src/stream-tcp-reassemble.c +++ b/src/stream-tcp-reassemble.c @@ -1853,7 +1853,11 @@ int StreamTcpReassembleHandleSegment(ThreadVars *tv, TcpReassemblyThreadCtx *ra_ } else if (p->tcph->th_flags & TH_RST) { // accepted rst dir = UPDATE_DIR_PACKET; } else if ((p->tcph->th_flags & TH_FIN) && ssn->state > TCP_TIME_WAIT) { - dir = UPDATE_DIR_PACKET; + if (p->tcph->th_flags & TH_ACK) { + dir = UPDATE_DIR_BOTH; + } else { + dir = UPDATE_DIR_PACKET; + } } else if (ssn->state == TCP_CLOSED) { dir = UPDATE_DIR_BOTH; }