summaryrefslogtreecommitdiff
path: root/libavcodec
diff options
context:
space:
mode:
authorMichael Niedermayer <michael@niedermayer.cc>2017-07-24 16:43:24 +0200
committerMichael Niedermayer <michael@niedermayer.cc>2017-07-26 17:06:29 +0200
commit1b00600319506a9bd81b114d2b374051dc1a29a6 (patch)
treecf3ed6556e09a9d6bfe30ccff61c9c80b6255a49 /libavcodec
parent74c1c22d7f0d25f527ed2ebf62493be5ad52c972 (diff)
avcodec/jpeg2000dec: Fix division by zero in jp2_find_codestream()
Fixes: 2707/clusterfuzz-testcase-minimized-5179636394754048 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/jpeg2000dec.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/libavcodec/jpeg2000dec.c b/libavcodec/jpeg2000dec.c
index b67efc76bb..dd9c60feb4 100644
--- a/libavcodec/jpeg2000dec.c
+++ b/libavcodec/jpeg2000dec.c
@@ -2075,6 +2075,11 @@ static int jp2_find_codestream(Jpeg2000DecoderContext *s)
hden = bytestream2_get_be16u(&s->g);
vexp = bytestream2_get_byteu(&s->g);
hexp = bytestream2_get_byteu(&s->g);
+ if (!vnum || !vden || !hnum || !vden) {
+ bytestream2_seek(&s->g, atom2_end, SEEK_SET);
+ av_log(s->avctx, AV_LOG_WARNING, "RES box invalid\n");
+ continue;
+ }
if (vexp > hexp) {
vexp -= hexp;
hexp = 0;