mpc8: check seektable size before attempting to use it.
authorMichael Niedermayer <michaelni@gmx.at>
Sun, 2 Dec 2012 03:21:42 +0000 (04:21 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 2 Dec 2012 03:21:42 +0000 (04:21 +0100)
Fixes null pointer dereference

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

index 56ed7ad..191f696 100644 (file)
@@ -145,6 +145,10 @@ static void mpc8_parse_seektable(AVFormatContext *s, int64_t off)
         av_log(s, AV_LOG_ERROR, "No seek table at given position\n");
         return;
     }
+    if (size > INT_MAX/10 || size<=0) {
+        av_log(s, AV_LOG_ERROR, "Seek table size is invalid\n");
+        return;
+    }
     if(!(buf = av_malloc(size + FF_INPUT_BUFFER_PADDING_SIZE)))
         return;
     avio_read(s->pb, buf, size);