diff options
author | Janne Grunau <janne-vlc@jannau.net> | 2018-11-20 00:52:13 +0300 |
---|---|---|
committer | Janne Grunau <janne-vlc@jannau.net> | 2018-11-20 00:52:13 +0300 |
commit | acee43456b37211e78dc98f59a17995614e64f74 (patch) | |
tree | f4bdbad116962ed80c4cc84e44d8f42e60d43400 | |
parent | b3c522d5c060b98bdd6a164df95c891cd7f6b985 (diff) |
frame mt: mark frame as failed in dav1d_close()
Fixes a deadlock on teardown with
clusterfuzz-testcase-minimized-dav1d_fuzzer_mt-5636065151418368. Credits
to oss-fuzz.
-rw-r--r-- | src/lib.c | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -286,6 +286,10 @@ void dav1d_close(Dav1dContext **const c_out) { // clean-up threading stuff if (c->n_fc > 1) { + if (f->frame_hdr.refresh_context) + dav1d_cdf_thread_signal(&f->out_cdf); + dav1d_thread_picture_signal(&f->sr_cur, FRAME_ERROR, + PLANE_TYPE_ALL); pthread_mutex_lock(&f->frame_thread.td.lock); f->frame_thread.die = 1; pthread_cond_signal(&f->frame_thread.td.cond); |