diff options
author | Michael Niedermayer <michael@niedermayer.cc> | 2019-01-08 23:29:38 +0100 |
---|---|---|
committer | Michael Niedermayer <michael@niedermayer.cc> | 2019-01-16 01:29:18 +0100 |
commit | 6ed3d0e01c20aba7ef3984c0b8965d26e9f4990c (patch) | |
tree | 41d3e9b939990155390d3202d55bee658d716ac9 /libavcodec/diracdec.c | |
parent | 6dde65d7c0ac34ad1aa2619ec7d979cb6464f9af (diff) | |
download | ffmpeg-streaming-6ed3d0e01c20aba7ef3984c0b8965d26e9f4990c.zip ffmpeg-streaming-6ed3d0e01c20aba7ef3984c0b8965d26e9f4990c.tar.gz |
avcodec/diracdec: Propagate errors from dirac_get_arith_uint()
Testcase: 11663/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DIRAC_fuzzer-5636791864918016
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavcodec/diracdec.c')
-rw-r--r-- | libavcodec/diracdec.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/libavcodec/diracdec.c b/libavcodec/diracdec.c index fd23139..db010b4 100644 --- a/libavcodec/diracdec.c +++ b/libavcodec/diracdec.c @@ -537,6 +537,8 @@ static inline int codeblock(DiracContext *s, SubBand *b, buf = b->ibuf + top * b->stride; if (is_arith) { for (y = top; y < bottom; y++) { + if (c->error) + return c->error; for (x = left; x < right; x++) { if (b->pshift) { coeff_unpack_arith_10(c, qfactor, qoffset, b, (int32_t*)(buf)+x, x, y); |