diff --git a/src/file_analysis/Info.cc b/src/file_analysis/Info.cc index 8e18795ba6..e22cf66124 100644 --- a/src/file_analysis/Info.cc +++ b/src/file_analysis/Info.cc @@ -77,7 +77,7 @@ void Info::StaticInit() } Info::Info(const string& unique, Connection* conn, AnalyzerTag::Tag tag) - : file_id(unique), unique(unique), val(0), postpone_timeout(false), + : file_id(""), unique(unique), val(0), postpone_timeout(false), need_reassembly(false), done(false), actions(this) { StaticInit(); @@ -338,13 +338,14 @@ void Info::DataIn(const u_char* data, uint64 len) void Info::EndOfFile() { if ( done ) return; - done = true; actions.DrainModifications(); // Send along anything that's been buffered, but never flushed. ReplayBOF(); + done = true; + Action* act = 0; IterCookie* c = actions.InitForIteration(); diff --git a/src/file_analysis/Manager.cc b/src/file_analysis/Manager.cc index bad46b8fd9..21d9c6bd07 100644 --- a/src/file_analysis/Manager.cc +++ b/src/file_analysis/Manager.cc @@ -303,8 +303,8 @@ bool Manager::RemoveFile(const string& unique) reporter->Error("No mapping for fileID %s", id.c_str()); ignored.erase(unique); - str_map.erase(unique); delete it->second; + str_map.erase(unique); return true; }