summaryrefslogtreecommitdiff
path: root/libavcodec/cljr.c
diff options
context:
space:
mode:
authorShitiz Garg <mail-5deEcKV3Bynk1uMJSBkQmQ@public.gmane.org>2011-12-16 04:50:21 +0530
committerMichael Niedermayer <michaelni@gmx.at>2011-12-16 20:23:38 +0100
commit4af0262f7d531c33b00d7f9dbca808d9c62d6a84 (patch)
treee66a946084144694f62f10e75820bddc1487c205 /libavcodec/cljr.c
parent7b92863f30b1a748dc17bf662379261b42751f86 (diff)
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.c5
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");