diff options
author | Michael Niedermayer <michael@niedermayer.cc> | 2017-07-24 16:43:24 +0200 |
---|---|---|
committer | Michael Niedermayer <michael@niedermayer.cc> | 2017-07-26 17:06:29 +0200 |
commit | 1b00600319506a9bd81b114d2b374051dc1a29a6 (patch) | |
tree | cf3ed6556e09a9d6bfe30ccff61c9c80b6255a49 | |
parent | 74c1c22d7f0d25f527ed2ebf62493be5ad52c972 (diff) | |
download | ffmpeg-1b00600319506a9bd81b114d2b374051dc1a29a6.tar.gz |
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>
-rw-r--r-- | libavcodec/jpeg2000dec.c | 5 |
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; |