提交 ff5b9ece 编写于 作者: G Gautam Ramakrishnan 提交者: Michael Niedermayer

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: NMichael Niedermayer <michael@niedermayer.cc>
上级 4333718b
......@@ -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;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册