mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 06:38:20 +00:00
BIT-1544: allow NULs in file analysis handles
This commit is contained in:
parent
f336c8c710
commit
05b10fe2e7
5 changed files with 22 additions and 5 deletions
4
CHANGES
4
CHANGES
|
@ -1,4 +1,8 @@
|
|||
|
||||
2.5-843 | 2018-08-15 18:01:56 -0500
|
||||
|
||||
* BIT-1544: allow NULs in file analysis handles (Jon Siwek, Corelight)
|
||||
|
||||
2.5-842 | 2018-08-15 11:00:20 -0500
|
||||
|
||||
* Fix seg fault on trying to type-cast invalid/nil Broker::Data
|
||||
|
|
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
|||
2.5-842
|
||||
2.5-843
|
||||
|
|
|
@ -104,7 +104,16 @@ void Manager::SetHandle(const string& handle)
|
|||
if ( handle.empty() )
|
||||
return;
|
||||
|
||||
DBG_LOG(DBG_FILE_ANALYSIS, "Set current handle to %s", handle.c_str());
|
||||
#ifdef DEBUG
|
||||
if ( debug_logger.IsEnabled(DBG_FILE_ANALYSIS) )
|
||||
{
|
||||
BroString tmp{handle};
|
||||
auto rendered = tmp.Render();
|
||||
DBG_LOG(DBG_FILE_ANALYSIS, "Set current handle to %s", rendered);
|
||||
delete [] rendered;
|
||||
}
|
||||
#endif
|
||||
|
||||
current_file_id = HashHandle(handle);
|
||||
}
|
||||
|
||||
|
|
|
@ -70,7 +70,8 @@ public:
|
|||
|
||||
/**
|
||||
* Creates a file identifier from a unique file handle string.
|
||||
* @param handle a unique string which identifies a single file.
|
||||
* @param handle a unique string (may contain NULs) which identifies
|
||||
* a single file.
|
||||
* @return a prettified MD5 hash of \a handle, truncated to *bits_per_uid* bits.
|
||||
*/
|
||||
string HashHandle(const string& handle) const;
|
||||
|
@ -78,7 +79,8 @@ public:
|
|||
/**
|
||||
* Take in a unique file handle string to identify next piece of
|
||||
* incoming file data/information.
|
||||
* @param handle a unique string which identifies a single file.
|
||||
* @param handle a unique string (may contain NULs) which identifies
|
||||
* a single file.
|
||||
*/
|
||||
void SetHandle(const string& handle);
|
||||
|
||||
|
|
|
@ -105,7 +105,9 @@ module GLOBAL;
|
|||
## .. bro:see:: get_file_handle
|
||||
function set_file_handle%(handle: string%): any
|
||||
%{
|
||||
file_mgr->SetHandle(handle->CheckString());
|
||||
auto bytes = reinterpret_cast<const char*>(handle->Bytes());
|
||||
auto h = std::string(bytes, handle->Len());
|
||||
file_mgr->SetHandle(h);
|
||||
return 0;
|
||||
%}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue