diff mbox series

[FFmpeg-devel,v2,1/4] libavcodec/jpeg2000dec : Prevent overriding SOP marker bit

Message ID 20200714164316.32120-1-gautamramk@gmail.com
State Accepted
Headers show
Series [FFmpeg-devel,v2,1/4] libavcodec/jpeg2000dec : Prevent overriding SOP marker bit | expand

Checks

Context Check Description
andriy/default pending
andriy/make success Make finished
andriy/make_fate success Make fate finished

Commit Message

Gautam Ramakrishnan July 14, 2020, 4:43 p.m. UTC
From: Gautam Ramakrishnan <gautamramk@gmail.com>

Currently, the COC marker overrides the SOP marker bit.
However, only the COD marker may set this value. This
patch fixes this bug.
---
 libavcodec/jpeg2000dec.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Michael Niedermayer July 14, 2020, 7:59 p.m. UTC | #1
On Tue, Jul 14, 2020 at 10:13:13PM +0530, gautamramk@gmail.com wrote:
> From: Gautam Ramakrishnan <gautamramk@gmail.com>
> 
> Currently, the COC marker overrides the SOP marker bit.
> However, only the COD marker may set this value. This
> patch fixes this bug.
> ---
>  libavcodec/jpeg2000dec.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)

will apply

[...]
diff mbox series

Patch

diff --git a/libavcodec/jpeg2000dec.c b/libavcodec/jpeg2000dec.c
index 18a933077e..48ca1c37a5 100644
--- a/libavcodec/jpeg2000dec.c
+++ b/libavcodec/jpeg2000dec.c
@@ -588,7 +588,7 @@  static int get_coc(Jpeg2000DecoderContext *s, Jpeg2000CodingStyle *c,
                    uint8_t *properties)
 {
     int compno, ret;
-    uint8_t has_eph;
+    uint8_t has_eph, has_sop;
 
     if (bytestream2_get_bytes_left(&s->g) < 2) {
         av_log(s->avctx, AV_LOG_ERROR, "Insufficient space for COC\n");
@@ -606,8 +606,10 @@  static int get_coc(Jpeg2000DecoderContext *s, Jpeg2000CodingStyle *c,
 
     c      += compno;
     has_eph = c->csty & JPEG2000_CSTY_EPH;
+    has_sop = c->csty & JPEG2000_CSTY_SOP;
     c->csty = bytestream2_get_byteu(&s->g);
     c->csty |= has_eph; //do not override eph present bits from COD
+    c->csty |= has_sop; //do not override sop present bits from COD
 
     if ((ret = get_cox(s, c)) < 0)
         return ret;