matroskadec: check headerstrip data availability.
authorMichael Niedermayer <michaelni@gmx.at>
Tue, 17 Apr 2012 15:12:22 +0000 (17:12 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 17 Apr 2012 15:58:19 +0000 (17:58 +0200)
Fixes null ptr dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/matroskadec.c

index a484c50..6d2d43e 100644 (file)
@@ -1011,6 +1011,10 @@ static int matroska_decode_buffer(uint8_t** buf, int* buf_size,
 
     switch (encodings[0].compression.algo) {
     case MATROSKA_TRACK_ENCODING_COMP_HEADERSTRIP:
+        if (encodings[0].compression.settings.size && !encodings[0].compression.settings.data) {
+            av_log(0, AV_LOG_ERROR, "Compression size but no data in headerstrip\n");
+            return -1;
+        }
         return encodings[0].compression.settings.size;
     case MATROSKA_TRACK_ENCODING_COMP_LZO:
         do {