OSDN Git Service

avformat/ipmovie: Check that the OPCODE_INIT_AUDIO_BUFFERS size is large enough
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 18 Dec 2013 22:13:15 +0000 (23:13 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 18 Dec 2013 22:15:18 +0000 (23:15 +0100)
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f75b03c1f19_4820_descent3_level5_16bit_partial.mve
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/ipmovie.c

index 57664f1..6d2cc05 100644 (file)
@@ -339,7 +339,7 @@ static int process_ipmovie_chunk(IPMVEContext *s, AVIOContext *pb,
 
         case OPCODE_INIT_AUDIO_BUFFERS:
             av_dlog(NULL, "initialize audio buffers\n");
-            if ((opcode_version > 1) || (opcode_size > 10)) {
+            if ((opcode_version > 1) || (opcode_size > 10) || opcode_size < 6) {
                 av_dlog(NULL, "bad init_audio_buffers opcode\n");
                 chunk_type = CHUNK_BAD;
                 break;