indeo4: Decode all or nothing of a band header.
authorMichael Niedermayer <michael@niedermayer.cc>
Thu, 17 May 2018 11:40:38 +0000 (13:40 +0200)
committerMichael Niedermayer <michael@niedermayer.cc>
Fri, 15 Jun 2018 20:31:13 +0000 (22:31 +0200)
commitb2aaf5de429abf6f9c8fc8fdae57d3d344403242
tree3ce433cd6e1058e772111f8e4066a7effc68292d
parent217367b5eb0a6be8e1c5c819ef2a407d30591091
indeo4: Decode all or nothing of a band header.

This avoids inconsistent value combinations.
Alternatively it would be possible to add more checks and careful use of
temporary variables, but my try of this quickly seemed to become
a rather large change.
The disadvantage of this, is that the struct is copied back and forth.

Fixes: index 6 out of bounds for type 'const uint16_t [5][16]'
Fixes: 6557/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_INDEO4_fuzzer-4787296550256640

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 10c8521265da86118597336c5589e26de377a374)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavcodec/indeo4.c