Browse Source

avcodec/interplayvideo: Check that enough data is available for opcode_0xA

Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f90e5be6b30_3965_baldursgate_camp.mve
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
tags/n2.2-rc1
Michael Niedermayer 12 years ago
parent
commit
ff1e30c059
1 changed files with 5 additions and 0 deletions
  1. +5
    -0
      libavcodec/interplayvideo.c

+ 5
- 0
libavcodec/interplayvideo.c View File

@@ -374,6 +374,11 @@ static int ipvideo_decode_block_opcode_0xA(IpvideoContext *s, AVFrame *frame)
unsigned char P[8];
int flags = 0;

if (bytestream2_get_bytes_left(&s->stream_ptr) < 16) {
av_log(s->avctx, AV_LOG_ERROR, "too little data for opcode 0xA\n");
return AVERROR_INVALIDDATA;
}

bytestream2_get_buffer(&s->stream_ptr, P, 4);

/* 4-color encoding for each 4x4 quadrant, or 4-color encoding on


Loading…
Cancel
Save