|
|
|
@@ -79,6 +79,7 @@ typedef struct TiffContext { |
|
|
|
int fill_order; |
|
|
|
uint32_t res[4]; |
|
|
|
int is_thumbnail; |
|
|
|
unsigned last_tag; |
|
|
|
|
|
|
|
int is_bayer; |
|
|
|
uint8_t pattern[4]; |
|
|
|
@@ -1252,6 +1253,12 @@ static int tiff_decode_tag(TiffContext *s, AVFrame *frame) |
|
|
|
if (ret < 0) { |
|
|
|
goto end; |
|
|
|
} |
|
|
|
if (tag <= s->last_tag) |
|
|
|
return AVERROR_INVALIDDATA; |
|
|
|
|
|
|
|
// We ignore TIFF_STRIP_SIZE as it is sometimes in the logic but wrong order around TIFF_STRIP_OFFS |
|
|
|
if (tag != TIFF_STRIP_SIZE) |
|
|
|
s->last_tag = tag; |
|
|
|
|
|
|
|
off = bytestream2_tell(&s->gb); |
|
|
|
if (count == 1) { |
|
|
|
@@ -1807,6 +1814,7 @@ again: |
|
|
|
s->is_tiled = 0; |
|
|
|
s->is_jpeg = 0; |
|
|
|
s->cur_page = 0; |
|
|
|
s->last_tag = 0; |
|
|
|
|
|
|
|
for (i = 0; i < 65536; i++) |
|
|
|
s->dng_lut[i] = i; |
|
|
|
|