From: Victor Julien Date: Fri, 28 Apr 2023 09:48:31 +0000 (+0200) Subject: stream: clear SYN queue on state change X-Git-Tag: suricata-7.0.0-rc2~324 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=62b998cc06811340e81decc10307a864e924e9ba;p=thirdparty%2Fsuricata.git stream: clear SYN queue on state change Bug: #5907. --- diff --git a/src/stream-tcp.c b/src/stream-tcp.c index c1fa6c55f1..f544d19506 100644 --- a/src/stream-tcp.c +++ b/src/stream-tcp.c @@ -1928,11 +1928,13 @@ static int StreamTcpPacketStateSynSent( SCLogDebug("ssn->server.flags |= STREAMTCP_STREAM_FLAG_RST_RECV"); ssn->server.flags |= STREAMTCP_STREAM_FLAG_RST_RECV; StreamTcpCloseSsnWithReset(p, ssn); + StreamTcp3wsFreeQueue(ssn); } } else { ssn->client.flags |= STREAMTCP_STREAM_FLAG_RST_RECV; SCLogDebug("ssn->client.flags |= STREAMTCP_STREAM_FLAG_RST_RECV"); StreamTcpCloseSsnWithReset(p, ssn); + StreamTcp3wsFreeQueue(ssn); } /* FIN */ @@ -2043,6 +2045,7 @@ static int StreamTcpPacketStateSynSent( ssn->flags |= STREAMTCP_FLAG_ASYNC; StreamTcpPacketSetState(p, ssn, TCP_ESTABLISHED); SCLogDebug("ssn %p: =~ ssn state is now TCP_ESTABLISHED", ssn); + StreamTcp3wsFreeQueue(ssn); ssn->client.window = TCP_GET_WINDOW(p); ssn->client.last_ack = TCP_GET_SEQ(p);