libextractor

GNU libextractor
Log | Files | Refs | Submodules | README | LICENSE

commit 390178edd50e5886ab74b3b21c892850de1f1a8d
parent ad290dcfd28cd1cf5585fcbea0317b0ab721c26c
Author: Christian Grothoff <christian@grothoff.org>
Date:   Mon, 12 Mar 2007 00:07:43 +0000

release

Diffstat:
Msrc/main/extractor.c | 3++-
Msrc/plugins/mpegextractor.c | 9+++++----
Msrc/plugins/tarextractor.c | 7++++---
3 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/src/main/extractor.c b/src/main/extractor.c @@ -1093,7 +1093,8 @@ getKeywords (EXTRACTOR_ExtractorList * extractor, #endif #if HAVE_LIBBZ2 - if ( (data[0] == 'B') && + if ( (size >= 4) && + (data[0] == 'B') && (data[1] == 'Z') && (data[2] == 'h') ) { /* now try bz2 decompression */ diff --git a/src/plugins/mpegextractor.c b/src/plugins/mpegextractor.c @@ -47,10 +47,11 @@ libextractor_mpeg_extract(const char * filename, mpeg2_state_t state; char format[256]; - if ( ! ( (data[0]==0x00) && - (data[1]==0x00) && - (data[2]==0x01) && - ( (data[3]==0xB3) || (data[3]==0xBA) ) ) ) + if ( ( size < 4) || + ( ! ( (data[0]==0x00) && + (data[1]==0x00) && + (data[2]==0x01) && + ( (data[3]==0xB3) || (data[3]==0xBA) ) ) ) ) return prev; handle = mpeg2_init(); diff --git a/src/plugins/tarextractor.c b/src/plugins/tarextractor.c @@ -801,11 +801,12 @@ libextractor_tar_extract(const char * filename, } } - if(0 < format_length) { + if (0 < format_length) { strcpy(format + format_length, " TAR"); prev = addKeyword(EXTRACTOR_FORMAT, format, prev); - } - free(format); + } else { + free(format); + } } } }