Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/videolan/dav1d.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJanne Grunau <janne-vlc@jannau.net>2018-11-19 00:02:47 +0300
committerJanne Grunau <janne-vlc@jannau.net>2018-11-19 00:21:28 +0300
commitc496fab4abbc8ec28fa575d38119d35eaffb91bb (patch)
treea8db943538570cf592700ec89b0503794ac7b50b
parent4aa0363a342613b41034911ba5a5d285bf9c7335 (diff)
decode: check once per tile sb row for symbol decoder overreads
-rw-r--r--src/decode.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/decode.c b/src/decode.c
index 56e8bc0..89cda0a 100644
--- a/src/decode.c
+++ b/src/decode.c
@@ -2374,6 +2374,9 @@ int dav1d_decode_tile_sbrow(Dav1dTileContext *const t) {
return 0;
}
+ // error out on symbol decoder overread
+ if (ts->msac.cnt < -15) return 1;
+
if (c->n_fc > 1 && f->frame_hdr.use_ref_frame_mvs) {
for (int n = 0; n < 7; n++)
if (dav1d_thread_picture_wait(&f->refp[n], 4 * (t->by + sb_step),