mirror of
https://github.com/zeek/zeek.git
synced 2025-10-03 15:18:20 +00:00
Fix memory leak in file analyzer.
This undoes the changes applied in merge9db27a6d60
and goes back to the state in the branch as of the merge5ab3b86
. Getting rid of the additional layer of removing analyzers and just keeping them in the set introduced subtle differences in behavior since a few calls were still passed along. Skipping all of these with SetSkip introduced yet other subtle behavioral differences.
This commit is contained in:
parent
7beac6e404
commit
1de6cfc2e3
3 changed files with 17 additions and 2 deletions
|
@ -129,11 +129,12 @@ bool AnalyzerSet::Remove(file_analysis::Tag tag, HashKey* key)
|
|||
file->GetID().c_str(),
|
||||
file_mgr->GetComponentName(tag).c_str());
|
||||
|
||||
a->Done();
|
||||
|
||||
// We don't delete the analyzer object right here because the remove
|
||||
// operation may execute at a time when it can still be accessed.
|
||||
// Instead we let disable it; it will be deleted together with the AnalyzerSet.
|
||||
a->SetSkip(true);
|
||||
// Instead we let the file know to delete the analyzer later.
|
||||
file->DoneWithAnalyzer(a);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue