check std tag size before reading.
authorMichael Niedermayer <michaelni@gmx.at>
Fri, 30 Nov 2012 23:29:39 +0000 (00:29 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Fri, 30 Nov 2012 23:30:11 +0000 (00:30 +0100)
Fixes out of array read

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

index 0a003d4..1e142f5 100644 (file)
@@ -134,6 +134,10 @@ static int fourxm_read_header(AVFormatContext *s)
         }
 
         if (fourcc_tag == std__TAG) {
+            if (header_size < i + 16) {
+                av_log(s, AV_LOG_ERROR, "std TAG truncated\n");
+                return AVERROR_INVALIDDATA;
+            }
             fourxm->fps = av_int2float(AV_RL32(&header[i + 12]));
         } else if (fourcc_tag == vtrk_TAG) {
             /* check that there is enough data */