summaryrefslogtreecommitdiffstats
path: root/libavcodec/diracdec.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michael@niedermayer.cc>2019-01-08 23:29:38 +0100
committerMichael Niedermayer <michael@niedermayer.cc>2019-01-16 01:29:18 +0100
commit6ed3d0e01c20aba7ef3984c0b8965d26e9f4990c (patch)
tree41d3e9b939990155390d3202d55bee658d716ac9 /libavcodec/diracdec.c
parent6dde65d7c0ac34ad1aa2619ec7d979cb6464f9af (diff)
downloadffmpeg-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.c2
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);
OpenPOWER on IntegriCloud