Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2011-12-15 07:24:38 +0400
committerMichael Niedermayer <michaelni@gmx.at>2011-12-15 07:24:38 +0400
commitafb2bac48d0d044718c2da3d34a97bee244be2e3 (patch)
tree2943ddcaaff1032c64b289b816c4dd99e993197b /libavcodec/flicvideo.c
parent944f5b2779e4aa63f7624df6cd4de832a53db81b (diff)
flicvideo: fix overread.
Bug Found by: Diana Elena Muscalu Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/flicvideo.c')
-rw-r--r--libavcodec/flicvideo.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/libavcodec/flicvideo.c b/libavcodec/flicvideo.c
index 9111d17d82..28009cddba 100644
--- a/libavcodec/flicvideo.c
+++ b/libavcodec/flicvideo.c
@@ -319,12 +319,14 @@ static int flic_decode_frame_8BPP(AVCodecContext *avctx,
pixel_ptr = y_ptr;
CHECK_PIXEL_PTR(0);
pixel_countdown = s->avctx->width;
- line_packets = buf[stream_ptr++];
- if (stream_ptr + 2 * line_packets > stream_ptr_after_chunk)
+ if (stream_ptr + 1 > stream_ptr_after_chunk)
break;
+ line_packets = buf[stream_ptr++];
if (line_packets > 0) {
for (i = 0; i < line_packets; i++) {
/* account for the skip bytes */
+ if (stream_ptr + 2 > stream_ptr_after_chunk)
+ break;
pixel_skip = buf[stream_ptr++];
pixel_ptr += pixel_skip;
pixel_countdown -= pixel_skip;