diff options
author | Shitiz Garg <mail-5deEcKV3Bynk1uMJSBkQmQ@public.gmane.org> | 2011-12-16 04:50:21 +0530 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2011-12-16 20:23:38 +0100 |
commit | 4af0262f7d531c33b00d7f9dbca808d9c62d6a84 (patch) | |
tree | e66a946084144694f62f10e75820bddc1487c205 /libavcodec/cljr.c | |
parent | 7b92863f30b1a748dc17bf662379261b42751f86 (diff) | |
download | ffmpeg-4af0262f7d531c33b00d7f9dbca808d9c62d6a84.tar.gz |
cljr: Check if width or height are positive integers
width and height might get passed as 0 and would cause floating point
exceptions in decode_frame.
Fixes bugzilla #149
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/cljr.c')
-rw-r--r-- | libavcodec/cljr.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/libavcodec/cljr.c b/libavcodec/cljr.c index 7ae3e7eeeb..2b0142b979 100644 --- a/libavcodec/cljr.c +++ b/libavcodec/cljr.c @@ -61,6 +61,11 @@ static int decode_frame(AVCodecContext *avctx, if (p->data[0]) avctx->release_buffer(avctx, p); + if (avctx->height <= 0 || avctx->width <= 0) { + av_log(avctx, AV_LOG_ERROR, "Invalid width or height\n"); + return AVERROR_INVALIDDATA; + } + if (buf_size / avctx->height < avctx->width) { av_log(avctx, AV_LOG_ERROR, "Resolution larger than buffer size. Invalid header?\n"); |