[FFmpeg-cvslog] Check for out of bound reads in the Electronic Arts CMV decoder.

Laurent Aimar git at videolan.org
Sat Oct 1 21:39:00 CEST 2011


ffmpeg | branch: release/0.8 | Laurent Aimar <fenrir at videolan.org> | Sat Oct  1 00:45:01 2011 +0200| [e8fd4a43ba758adb9378afe2cde4a5b9d4bda357] | committer: Michael Niedermayer

Check for out of bound reads in the Electronic Arts CMV decoder.

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
(cherry picked from commit a5d46235f3f70f0b620f8e54649ece45ecc5b170)

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e8fd4a43ba758adb9378afe2cde4a5b9d4bda357
---

 libavcodec/eacmv.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/libavcodec/eacmv.c b/libavcodec/eacmv.c
index 6e3b519..4cd6a6f 100644
--- a/libavcodec/eacmv.c
+++ b/libavcodec/eacmv.c
@@ -158,6 +158,9 @@ static int cmv_decode_frame(AVCodecContext *avctx,
     CmvContext *s = avctx->priv_data;
     const uint8_t *buf_end = buf + buf_size;
 
+    if (buf_end - buf < EA_PREAMBLE_SIZE)
+        return AVERROR_INVALIDDATA;
+
     if (AV_RL32(buf)==MVIh_TAG||AV_RB32(buf)==MVIh_TAG) {
         cmv_process_header(s, buf+EA_PREAMBLE_SIZE, buf_end);
         return buf_size;



More information about the ffmpeg-cvslog mailing list