FileAnalysis: load custom mime magic database just once.

This works around a bug in libmagic since version 5.12 (current at
time of writing is 5.14) -- second call to magic_load() w/ non-default
database segfaults.
This commit is contained in:
Jon Siwek 2013-04-29 11:34:27 -05:00
parent d22f30e9a1
commit 0141f51801
7 changed files with 15 additions and 32 deletions

View file

@ -49,8 +49,6 @@ int File::bof_buffer_size_idx = -1;
int File::bof_buffer_idx = -1;
int File::mime_type_idx = -1;
magic_t File::magic_mime = 0;
string File::salt;
void File::StaticInit()
@ -72,8 +70,6 @@ void File::StaticInit()
bof_buffer_idx = Idx("bof_buffer");
mime_type_idx = Idx("mime_type");
bro_init_magic(&magic_mime, MAGIC_MIME);
salt = BifConst::FileAnalysis::salt->CheckString();
}
@ -250,7 +246,7 @@ bool File::BufferBOF(const u_char* data, uint64 len)
bool File::DetectMIME(const u_char* data, uint64 len)
{
const char* mime = bro_magic_buffer(magic_mime, data, len);
const char* mime = bro_magic_buffer(magic_mime_cookie, data, len);
if ( mime )
{

View file

@ -3,7 +3,6 @@
#include <string>
#include <vector>
#include <magic.h>
#include "AnalyzerTags.h"
#include "Conn.h"
@ -207,8 +206,6 @@ protected:
*/
static void StaticInit();
static magic_t magic_mime;
static string salt;
static int id_idx;