]> git.sesse.net Git - ffmpeg/commitdiff
libavcodec/jpeg2000dec : Prevent overriding SOP marker bit
authorGautam Ramakrishnan <gautamramk@gmail.com>
Tue, 14 Jul 2020 16:43:13 +0000 (22:13 +0530)
committerMichael Niedermayer <michael@niedermayer.cc>
Tue, 14 Jul 2020 20:05:02 +0000 (22:05 +0200)
Currently, the COC marker overrides the SOP marker bit.
However, only the COD marker may set this value. This
patch fixes this bug.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavcodec/jpeg2000dec.c

index 18a933077ed2c35078b36804e232f794e06a3be6..48ca1c37a5bcbb5d0741100e41d0b09b335595bb 100644 (file)
@@ -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;