vlc | branch: master | Steve Lhomme <[email protected]> | Tue Nov 17 14:44:40 2020 +0100| [b460c38801c377c0dc731a0ee55995ba2fefeb86] | committer: Steve Lhomme
video_output: avoid potential NULL dereference of displayed.current ThreadDisplayPreparePicture() can call ThreadChangeFilters() which will reset displayed.current (via ThreadFilterFlush) so we need to ensure we don't release it again after a call to ThreadDisplayPreparePicture(). > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=b460c38801c377c0dc731a0ee55995ba2fefeb86 --- src/video_output/video_output.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/video_output/video_output.c b/src/video_output/video_output.c index 350a3e76c6..93c3d50c75 100644 --- a/src/video_output/video_output.c +++ b/src/video_output/video_output.c @@ -1493,7 +1493,8 @@ static int ThreadDisplayPicture(vout_thread_sys_t *vout, vlc_tick_t *deadline) ThreadDisplayPreparePicture(vout, false, true, &paused); } - picture_Release(sys->displayed.current); + if (likely(sys->displayed.current != NULL)) + picture_Release(sys->displayed.current); sys->displayed.current = sys->displayed.next; sys->displayed.next = NULL; @@ -1549,7 +1550,8 @@ static int ThreadDisplayPicture(vout_thread_sys_t *vout, vlc_tick_t *deadline) dropped_current_frame = true; render_now = false; - picture_Release(sys->displayed.current); + if (likely(sys->displayed.current != NULL)) + picture_Release(sys->displayed.current); sys->displayed.current = sys->displayed.next; sys->displayed.next = NULL; } _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
