summaryrefslogtreecommitdiff
path: root/libavcodec/vp5.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michael@niedermayer.cc>2017-03-07 19:09:38 +0100
committerMichael Niedermayer <michael@niedermayer.cc>2017-03-07 21:29:12 +0100
commit55d7371fe0c44c025eb0e75215e0685870f31874 (patch)
treed8d8913bc28d15bb37c89d47baf68ba65dde31a2 /libavcodec/vp5.c
parent5098a6f6275a57f122cd8f03e7ffbe5dd090b8e0 (diff)
downloadffmpeg-55d7371fe0c44c025eb0e75215e0685870f31874.tar.gz
avcodec/vp568: Check that there is enough data for ff_vp56_init_range_decoder()
Fixes: timeout in 730/clusterfuzz-testcase-5265113739165696 (part 1 of 2) Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg Reviewed-by: BBB Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavcodec/vp5.c')
-rw-r--r--libavcodec/vp5.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/libavcodec/vp5.c b/libavcodec/vp5.c
index 54db620bde..b5f06a0940 100644
--- a/libavcodec/vp5.c
+++ b/libavcodec/vp5.c
@@ -38,8 +38,11 @@ static int vp5_parse_header(VP56Context *s, const uint8_t *buf, int buf_size)
{
VP56RangeCoder *c = &s->c;
int rows, cols;
+ int ret;
- ff_vp56_init_range_decoder(&s->c, buf, buf_size);
+ ret = ff_vp56_init_range_decoder(&s->c, buf, buf_size);
+ if (ret < 0)
+ return ret;
s->frames[VP56_FRAME_CURRENT]->key_frame = !vp56_rac_get(c);
vp56_rac_get(c);
ff_vp56_init_dequant(s, vp56_rac_gets(c, 6));