Skip to content

vout: fix potential SIGSEGV after Flush

Thomas Guillem requested to merge tguillem/vlc:vout-fix-segfault into master
    Thread 90 "vlc-vout" received signal SIGSEGV, Segmentation fault.
    [Switching to Thread 0x7fff2bfff6c0 (LWP 201222)]
    (gdb) bt
     #0  0x00007ffff7cfa36a in vlc_atomic_rc_inc (rc=0x168) at ../../include/vlc_atomic.h:60
     #1  picture_Hold (picture=0x0) at ../../include/vlc_picture.h:362
     #2  FilterPictureInteractive (sys=0x7fff0c006480) at ../../src/video_output/video_output.c:1102
     #3  RenderPicture (sys=sys@entry=0x7fff0c006480, render_now=render_now@entry=true)
        at ../../src/video_output/video_output.c:1292
     #4  0x00007ffff7cfb59b in DisplayPicture (vout=0x7fff0c006480) at ../../src/video_output/video_output.c:1509
     #5  Thread (object=0x7fff0c006480) at ../../src/video_output/video_output.c:1825
     #6  0x00007ffff7e27044 in  () at /lib/x86_64-linux-gnu/libc.so.6
     #7  0x00007ffff7ea761c in  () at /lib/x86_64-linux-gnu/libc.so.6

wait_interrupted == true assumed that displayed.current was valid.

An other way of fixing this issue is to reset wait_interrupted = false, on Flush.

Merge request reports