From: Russ Combs Date: Wed, 13 May 2015 11:50:34 +0000 (-0400) Subject: tom: static analysis fix for new_http_inspect X-Git-Tag: 3.0.0-233~978 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c57dc67d2efc7bb59f1f325992c4d6899a1c826a;p=thirdparty%2Fsnort3.git tom: static analysis fix for new_http_inspect --- diff --git a/ChangeLog b/ChangeLog index c5e51c204..22ce30ec1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Pending - build 152 + +-- static analysis fix for new_http_inspect + 15/05/08 - build 151 -- doc tweaks diff --git a/src/service_inspectors/nhttp_inspect/nhttp_inspect.cc b/src/service_inspectors/nhttp_inspect/nhttp_inspect.cc index 3c66642cf..1e4146847 100644 --- a/src/service_inspectors/nhttp_inspect/nhttp_inspect.cc +++ b/src/service_inspectors/nhttp_inspect/nhttp_inspect.cc @@ -161,6 +161,13 @@ void NHttpInspect::clear(Packet* p) if (session_data->transaction[source_id] == nullptr) return; + clear(session_data, source_id); +} + +void NHttpInspect::clear(NHttpFlowData* session_data, SourceId source_id) +{ + latest_section = nullptr; + // If current transaction is complete then we are done with it and should reclaim the space if ((source_id == SRC_SERVER) && (session_data->type_expected[SRC_SERVER] == SEC_STATUS)) { diff --git a/src/service_inspectors/nhttp_inspect/nhttp_inspect.h b/src/service_inspectors/nhttp_inspect/nhttp_inspect.h index 3576903fc..b1b2958df 100644 --- a/src/service_inspectors/nhttp_inspect/nhttp_inspect.h +++ b/src/service_inspectors/nhttp_inspect/nhttp_inspect.h @@ -45,6 +45,7 @@ public: void show(SnortConfig*) override { LogMessage("NHttpInspect\n"); } void eval(Packet*) override { } void clear(Packet* p) override; + void clear(NHttpFlowData* session_data, NHttpEnums::SourceId source_id); void tinit() override { } void tterm() override { } NHttpStreamSplitter* get_splitter(bool is_client_to_server) override diff --git a/src/service_inspectors/nhttp_inspect/nhttp_stream_splitter.cc b/src/service_inspectors/nhttp_inspect/nhttp_stream_splitter.cc index 581a4110a..5025aedb7 100644 --- a/src/service_inspectors/nhttp_inspect/nhttp_stream_splitter.cc +++ b/src/service_inspectors/nhttp_inspect/nhttp_stream_splitter.cc @@ -359,8 +359,8 @@ const StreamBuffer* NHttpStreamSplitter::reassemble(Flow* flow, unsigned total, if (not_chunk && (session_data->section_type[source_id] != SEC_BODY)) { delete[] buffer; - buffer = nullptr; } + buffer = nullptr; return nullptr; } @@ -388,6 +388,7 @@ const StreamBuffer* NHttpStreamSplitter::reassemble(Flow* flow, unsigned total, } return &nhttp_buf; } + my_inspector->clear(session_data, source_id); buffer = nullptr; } return nullptr;