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
path: root/src/lib.c
diff options
context:
space:
mode:
authorVictorien Le Couviour--Tuffet <victorien@videolan.org>2021-09-07 21:46:11 +0300
committerVictorien Le Couviour--Tuffet <victorien@videolan.org>2021-09-09 16:42:04 +0300
commit976b9e496541df00c10f47d189b97d296ea49204 (patch)
tree72d42c8e32c3f1e2ff9126ccc97fba0cbd9fcafe /src/lib.c
parent4613d3a5306e44f3fdc39989e6bb218841e78097 (diff)
Fix a potential hang when dav1d_submit_frame fails
Credit to Oss-Fuzz.
Diffstat (limited to 'src/lib.c')
-rw-r--r--src/lib.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/lib.c b/src/lib.c
index 80a400b..2b6db42 100644
--- a/src/lib.c
+++ b/src/lib.c
@@ -354,7 +354,7 @@ static int drain_picture(Dav1dContext *const c, Dav1dPicture *const out) {
&f->task_thread.ttd->lock);
Dav1dThreadPicture *const out_delayed =
&c->frame_thread.out_delayed[next];
- if (out_delayed->p.data[0]) {
+ if (out_delayed->p.data[0] || atomic_load(&f->task_thread.error)) {
if (atomic_load(&c->task_thread.first) + 1U < c->n_fc)
atomic_fetch_add(&c->task_thread.first, 1U);
else