From 360130378b4a0029a2a341398b08a7d7acfe85d5 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Fri, 4 Feb 2005 18:58:59 +0000 Subject: fixing an integer overflow, which could lead to overwriting the end of a malloced buffer by 8 bytes Originally committed as revision 3937 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavformat/sierravmd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavformat/sierravmd.c b/libavformat/sierravmd.c index 16b6a8d4cc..b1484b5605 100644 --- a/libavformat/sierravmd.c +++ b/libavformat/sierravmd.c @@ -212,7 +212,8 @@ static int vmd_read_header(AVFormatContext *s, /* if the frame size is 0, do not count the frame and bring the * total frame count down */ - vmd->frame_table[i].frame_size = LE_32(¤t_frame_record[2]); + // note, we limit the size to 1Gb to ensure that we dont end up overflowing the size integer used to allocate the memory + vmd->frame_table[i].frame_size = LE_32(¤t_frame_record[2]) & 0x3FFFFFFF; /* this logic is present so that 0-length audio chunks are not * accounted */ -- cgit v1.2.3