Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGautam Ramakrishnan <gautamramk@gmail.com>2020-07-23 20:11:10 +0300
committerMichael Niedermayer <michael@niedermayer.cc>2020-07-24 23:34:15 +0300
commitff5b9ece4290d245ba3bbf110d90f3f432dda3cc (patch)
treece5dd27261db51e245ba210e9424f84cea641fd6 /libavcodec/jpeg2000dec.c
parent4333718b357a9ad195031e5d0ea080d37677b795 (diff)
libavcodec/jpeg2000dec: Fix codeblock decode check
The codeblock decoder checks whether the mqc decoder has decoded the right number of bytes. However, this check does not account for the fact that the mqc encoder's flush routine adds 2 bytes of data which does not have to be read by the decoder. The check is modified to account for this. This patch solves issue #4827 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavcodec/jpeg2000dec.c')
-rw-r--r--libavcodec/jpeg2000dec.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/libavcodec/jpeg2000dec.c b/libavcodec/jpeg2000dec.c
index e941ebb5d0..a470cf47da 100644
--- a/libavcodec/jpeg2000dec.c
+++ b/libavcodec/jpeg2000dec.c
@@ -1754,9 +1754,13 @@ static int decode_cblk(Jpeg2000DecoderContext *s, Jpeg2000CodingStyle *codsty,
pass_cnt ++;
}
- if (cblk->data + cblk->length - 2*(term_cnt < cblk->nb_terminations) != t1->mqc.bp) {
+ if (cblk->data + cblk->length - 2 > t1->mqc.bp) {
av_log(s->avctx, AV_LOG_WARNING, "End mismatch %"PTRDIFF_SPECIFIER"\n",
- cblk->data + cblk->length - 2*(term_cnt < cblk->nb_terminations) - t1->mqc.bp);
+ cblk->data + cblk->length - 2 - t1->mqc.bp);
+ }
+
+ if (cblk->data + cblk->length < t1->mqc.bp) {
+ av_log(s->avctx, AV_LOG_WARNING, "Synthetic End of Stream Marker Read.\n");
}
return 1;