summaryrefslogtreecommitdiff
path: root/libavcodec/flicvideo.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2011-12-15 04:24:38 +0100
committerMichael Niedermayer <michaelni@gmx.at>2011-12-15 04:24:38 +0100
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;