diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2014-12-18 18:57:27 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2014-12-22 03:17:55 +0100 |
commit | 1344e91f33c87e4dba08e8dc316cb6532dec8ba7 (patch) | |
tree | 8f42e8e9abace5c985ea47f25245bdcccbf1c929 | |
parent | f13e6ec7a610b665a5f57404e4b37ebabc9367bb (diff) | |
download | ffmpeg-1344e91f33c87e4dba08e8dc316cb6532dec8ba7.tar.gz |
avcodec/indeo3: ensure offsets are non negative
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 368642361f3a589d7b0c23ea327d988edb434e3f)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavcodec/indeo3.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/libavcodec/indeo3.c b/libavcodec/indeo3.c index cafed5172b..9fde0fdf6c 100644 --- a/libavcodec/indeo3.c +++ b/libavcodec/indeo3.c @@ -982,7 +982,8 @@ static int decode_frame_headers(Indeo3DecodeContext *ctx, AVCodecContext *avctx, ctx->y_data_size = ends[0] - starts[0]; ctx->v_data_size = ends[1] - starts[1]; ctx->u_data_size = ends[2] - starts[2]; - if (FFMAX3(y_offset, v_offset, u_offset) >= ctx->data_size - 16 || + if (FFMIN3(y_offset, v_offset, u_offset) < 0 || + FFMAX3(y_offset, v_offset, u_offset) >= ctx->data_size - 16 || FFMIN3(y_offset, v_offset, u_offset) < gb.buffer - bs_hdr + 16 || FFMIN3(ctx->y_data_size, ctx->v_data_size, ctx->u_data_size) <= 0) { av_log(avctx, AV_LOG_ERROR, "One of the y/u/v offsets is invalid\n"); |