diff --git a/libyara/modules/magic/magic.c b/libyara/modules/magic/magic.c index 6e59ddde..124ed2af 100644 --- a/libyara/modules/magic/magic.c +++ b/libyara/modules/magic/magic.c @@ -111,8 +111,10 @@ define_function(magic_mime_type) { magic_setflags(cache->magic_cookie, MAGIC_MIME_TYPE); - cache->cached_mime_type = yr_strdup( - magic_buffer(cache->magic_cookie, block_data, block->size)); + const char* type = magic_buffer( + cache->magic_cookie, block_data, block->size); + + cache->cached_mime_type = (type == NULL) ? NULL : yr_strdup(type); } } @@ -148,8 +150,10 @@ define_function(magic_type) { magic_setflags(cache->magic_cookie, 0); - cache->cached_type = yr_strdup( - magic_buffer(cache->magic_cookie, block_data, block->size)); + const char* type = magic_buffer( + cache->magic_cookie, block_data, block->size); + + cache->cached_type = (type == NULL) ? NULL : yr_strdup(type); } }