commit 390178edd50e5886ab74b3b21c892850de1f1a8d
parent ad290dcfd28cd1cf5585fcbea0317b0ab721c26c
Author: Christian Grothoff <christian@grothoff.org>
Date: Mon, 12 Mar 2007 00:07:43 +0000
release
Diffstat:
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);
+ }
}
}
}