avcodec/tiff: Enforce increasing offsets
authorMichael Niedermayer <michael@niedermayer.cc>
Thu, 8 Aug 2019 23:23:46 +0000 (01:23 +0200)
committerMichael Niedermayer <michael@niedermayer.cc>
Sun, 11 Aug 2019 17:13:21 +0000 (19:13 +0200)
commit1fedba3c350a9eb22a1748c9056206d63d4d2dd9
tree72c32d015e41ccf7bcad6280e1fc1246dfe07bda
parent9cd1e939cf26e7a53f28cbbda22d27535981b9db
avcodec/tiff: Enforce increasing offsets

This may break some valid tiff files, it appears the specification does not require
the offsets to be increasing. They increase in the 2 test files i have though except
the last offset which is 0 (an end marker) and for which a special case is added to
avoid asking for a sample for that end marker.

See: [FFmpeg-devel] [PATCH 2/2] avcodec/tiff: Detect infinite retry loop
for an alternative implementation

Fixes: Timeout (Infinite -> Finite)
Fixes: 15706/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_TIFF_fuzzer-5114674904825856

This variant was requested by paul on IRC
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavcodec/tiff.c