From 78caa2ab8d70328318286d2cb2cab72ffb4fad66 Mon Sep 17 00:00:00 2001 From: "Bhargava Jandhyala (bjandhya)" Date: Wed, 6 Apr 2022 07:26:36 +0000 Subject: [PATCH] Pull request #3364: file_api: Handling user_file_data cleanup Merge in SNORT/snort3 from ~UMUNNIKR/snort3:file_bat_bqt to master Squashed commit of the following: commit b41c170a819ad1c542a98cba0708eb25da1d6bf6 Author: Unnikrishnan M Date: Tue Apr 5 15:42:04 2022 +0530 file_api: Handling user_file_data cleanup --- src/file_api/file_cache.cc | 2 ++ src/file_api/file_flows.cc | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/src/file_api/file_cache.cc b/src/file_api/file_cache.cc index 13263616a..1960a3f33 100644 --- a/src/file_api/file_cache.cc +++ b/src/file_api/file_cache.cc @@ -238,7 +238,9 @@ FileVerdict FileCache::check_verdict(Packet* p, FileInfo* file, if ( file->get_file_sig_sha256() and verdict == FILE_VERDICT_UNKNOWN ) { + file->user_file_data_mutex.lock(); verdict = policy->signature_lookup(p, file); + file->user_file_data_mutex.unlock(); } FILE_DEBUG(file_trace, DEFAULT_TRACE_OPTION_ID, TRACE_DEBUG_LEVEL, p, diff --git a/src/file_api/file_flows.cc b/src/file_api/file_flows.cc index 124b0cfcb..1d84a212c 100644 --- a/src/file_api/file_flows.cc +++ b/src/file_api/file_flows.cc @@ -114,8 +114,10 @@ void FileFlows::handle_retransmit(Packet* p) file_got = file_cache->get_file(flow, pending_file_id, false); if (file_got and file_got->get_file_data()) { + file_got->user_file_data_mutex.lock(); file->set_file_data(file_got->get_file_data()); file_got->set_file_data(nullptr); + file_got->user_file_data_mutex.unlock(); } } @@ -209,8 +211,10 @@ FileFlows::~FileFlows() if (file_got and (file_got->verdict == FILE_VERDICT_PENDING)) { + file_got->user_file_data_mutex.lock(); delete (file_got->get_file_data()); file_got->set_file_data(nullptr); + file_got->user_file_data_mutex.unlock(); } delete(main_context); -- 2.47.3