analyzer/HTTP: Call TCP_ApplicationAnalyzer::Done() after RequestMade()/ReplyMade()

This commit is contained in:
Arne Welzel 2022-10-17 15:47:49 +02:00 committed by Tim Wojtulewicz
parent fa956efa79
commit 6ef9423f3c

View file

@ -849,11 +849,15 @@ void HTTP_Analyzer::Done()
if ( IsFinished() ) if ( IsFinished() )
return; return;
analyzer::tcp::TCP_ApplicationAnalyzer::Done();
RequestMade(true, "message interrupted when connection done"); RequestMade(true, "message interrupted when connection done");
ReplyMade(true, "message interrupted when connection done"); ReplyMade(true, "message interrupted when connection done");
// Call Done() on support and child analyzers only after RequestMade()
// and ReplyMade() completed. These methods may interact with the analyzer's
// child analyzers (specifically through HTTP_Entity's EndOfData() and
// ForwardEndOfData()) which isn't valid after a call to Done().
analyzer::tcp::TCP_ApplicationAnalyzer::Done();
delete request_message; delete request_message;
request_message = nullptr; request_message = nullptr;