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,
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();
}
}
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);