Crash in module_load
How to reproduce:
After a clean build (rm -rf build-linux-*), playing a video by forcing the xvideo vout leads to a crash.
$ gdb --args ./vlc --vout xvideo /home/tom/Videos/Baby\ on\ a\ swing.MOV
(gdb) bt f
[#0](https://code.videolan.org/videolan/vlc/-/issues/0) 0x00007ffff673b34a in __strcmp_sse2_unaligned () at ../sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S:31
[#1](https://code.videolan.org/videolan/vlc/-/issues/1) 0x00007ffff787480e in vlc_plugin_symbol_compare (a=0x7fffaea64800, b=0x7fff94002960) at ../../src/modules/entry.c:491
sa = 0x7fffaea64800
sb = 0x7fff94002960
[#2](https://code.videolan.org/videolan/vlc/-/issues/2) 0x00007ffff67917b0 in __GI___tfind (key=0x7fffaea64800, vrootp=<optimized out>, compar=0x7ffff78747d5 <vlc_plugin_symbol_compare>) at tsearch.c:318
root = 0x7fff94002980
r = <optimized out>
rootp = <optimized out>
[#3](https://code.videolan.org/videolan/vlc/-/issues/3) 0x00007ffff7874b0b in vlc_plugin_get_symbol (root=0x7fff94002980, name=0x7fb11a6fe964 <error: Cannot access memory at address 0x7fb11a6fe964>, addrp=0x7fffaea64840) at ../../src/modules/entry.c:584
symp = 0x7fff94002930
[#4](https://code.videolan.org/videolan/vlc/-/issues/4) 0x00007ffff7874c22 in vlc_plugin_resolve (plugin=0x623180, entry=0x7fff9ea59417 <vlc_entry__3_0_0d>) at ../../src/modules/entry.c:619
item = 0x623380
cb = 0xe
i = 2
syms = 0x7fff94002980
ret = -1
[#5](https://code.videolan.org/videolan/vlc/-/issues/5) 0x00007ffff787091a in module_Map (obj=0x7fff94001328, plugin=0x623180) at ../../src/modules/bank.c:433
lock =
{__data = {__lock = 1, __count = 0, __owner = 16763, __nusers = 1, __kind = 0, __spins = 0, __elision = 0, __list = {__prev = 0x0, __next = 0x0}}, __size = "\001\000\000\000\000\000\000\000{A\000\000\001", '\000' <repeats 26 times>, __align = 1}
handle = 0x7fff94001580
__PRETTY_FUNCTION__ = "module_Map"
entry = 0x7fff9ea59417 <vlc_entry__3_0_0d>
__func__ = "module_Map"
[#6](https://code.videolan.org/videolan/vlc/-/issues/6) 0x00007ffff786f12d in module_load (obj=0x7fff94001328, m=0x623200, init=0x7ffff786f85f <generic_start>, args=0x7fffaea64970) at ../../src/modules/modules.c:175
ret = 0
[#7](https://code.videolan.org/videolan/vlc/-/issues/7) 0x00007ffff786f55f in vlc_module_load (obj=0x7fff94001328, capability=0x7ffff7932732 "vout display", name=0x7fff94001096 "", strict=true, probe=0x7ffff786f85f <generic_start>) at ../../src/modules/modules.c:275
cand = 0x623200
ret = 0
i = 2
buf = "xvideo\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000Ȯ\177\367\377\177\000"
slen = 6
shortcut = 0x7fffaea64950 "xvideo"
var = 0x7fff94001090 "xvideo"
mods = 0x7fff94001000
total = 14
__func__ = "vlc_module_load"
module = 0x0
b_force_backup = false
args = {{gp_offset = 40, fp_offset = 48, overflow_arg_area = 0x7fffaea64ab0, reg_save_area = 0x7fffaea649f0}}
__PRETTY_FUNCTION__ = "vlc_module_load"
[#8](https://code.videolan.org/videolan/vlc/-/issues/8) 0x00007ffff786f986 in module_need (obj=0x7fff94001328, cap=0x7ffff7932732 "vout display", name=0x7ffff7937b7f "$vout", strict=true) at ../../src/modules/modules.c:364
[#9](https://code.videolan.org/videolan/vlc/-/issues/9) 0x00007ffff78bfb6c in vout_display_New (obj=0x7fff981b25d8, module=0x7ffff7937b7f "$vout", load_module=true, fmt=0x7fff981b2618, cfg=0x7fff940010c8, owner=0x7fffaea64ba0) at ../../src/video_output/display.c:110
vd = 0x7fff94001328
[#10](https://code.videolan.org/videolan/vlc/-/issues/10) 0x00007ffff78c2d85 in DisplayNew (vout=0x7fff981b25d8, source=0x7fff981b2618, state=0x7fffaea64cb0, module=0x7ffff7937b7f "$vout", is_wrapper=false, wrapper=0x0, double_click_timeout=300000, hide_timeout=1000000, owner_ptr=0x0)
at ../../src/video_output/display.c:1274
osys = 0x7fff940010b0
cfg = 0x7fff940010c8
owner = {sys = 0x7fff940010b0, event = 0x7ffff78c0f87 <VoutDisplayEvent>, window_new = 0x7ffff78c1406 <VoutDisplayNewWindow>, window_del = 0x7ffff78c145c <VoutDisplayDelWindow>}
p_display = 0x7fff981b25d8
[#11](https://code.videolan.org/videolan/vlc/-/issues/11) 0x00007ffff78c2f8f in vout_NewDisplay (vout=0x7fff981b25d8, source=0x7fff981b2618, state=0x7fffaea64cb0, module=0x7ffff7937b7f "$vout", double_click_timeout=300000, hide_timeout=1000000) at ../../src/video_output/display.c:1334
[#12](https://code.videolan.org/videolan/vlc/-/issues/12) 0x00007ffff78d2c0f in vout_OpenWrapper (vout=0x7fff981b25d8, splitter_name=0x0, state=0x7fffaea64cb0) at ../../src/video_output/vout_wrapper.c:67
sys = 0x7fff981b2608
__func__ = "vout_OpenWrapper"
double_click_timeout = 300000
hide_timeout = 1000000
[#13](https://code.videolan.org/videolan/vlc/-/issues/13) 0x00007ffff78c97e0 in ThreadStart (vout=0x7fff981b25d8, state=0x7fffaea64cb0) at ../../src/video_output/video_output.c:1334
owner = {sys = 0x7fff981b25d8, {video = {buffer_new = 0x7ffff78c7472 <VoutVideoFilterInteractiveNewPicture>}, sub = {buffer_new = 0x7ffff78c7472 <VoutVideoFilterInteractiveNewPicture>}}}
state_default =
{cfg = {is_fullscreen = false, display = {title = 0x0, width = 0, height = 0, sar = {num = 1, den = 1}}, align = {horizontal = 0, vertical = 0}, is_display_filled = true, zoom = {num = 1, den = 1}}, sar = {num = 0, den = 0}}
__PRETTY_FUNCTION__ = "ThreadStart"
#14 (closed) 0x00007ffff78c9ed6 in ThreadControl (vout=0x7fff981b25d8, cmd=...) at ../../src/video_output/video_output.c:1472 #15 (closed) 0x00007ffff78ca1e8 in Thread (object=0x7fff981b25d8) at ../../src/video_output/video_output.c:1588 cmd = ---Type to continue, or q to quit--- {type = 0, u = {boolean = false, time = 0, time_ptr = 0x0, string = 0x0, integer = 0, pair = {a = 0, b = 0}, pause = {is_on = false, date = 0}, message = {channel = 0, string = 0x0}, border = {left = 0, top = 0, right = 0, bottom = 0}, window = {x = 0, y = 0, width = 0, height = 0}, cfg = 0x0, subpicture = 0x0}} picture_interlaced = false vout = 0x7fff981b25d8 sys = 0x7fff981b2608 interlacing = {is_interlaced = false, date = 125636568578} deadline = 0 wait = false #16 (closed) 0x00007ffff6c55464 in start_thread (arg=0x7fffaea65700) at pthread_create.c:333 __res = pd = 0x7fffaea65700 now = unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736123524864, -7450566172709362833, 0, 140736023901407, 0, 140737354125376, 7450388401395458927, 7450545879800865647}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = pagesize_m1 = sp = freesize = PRETTY_FUNCTION = "start_thread" #17 (closed) 0x00007ffff67949df in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105 }}}
Note that a similar crash happens in Android when loading a decoder module:
********** Crash dump: **********
Build fingerprint: 'Sony/SGP311/SGP311:5.1.1/10.7.A.0.228/2021936184:user/release-keys'
pid: 17295, tid: 17430, name: VlcObject >>> org.videolan.vlc.debug <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x194
Stack frame [#00](https://code.videolan.org/videolan/vlc/-/issues/00) pc 00000194 <unknown>
Stack frame [#01](https://code.videolan.org/videolan/vlc/-/issues/01) pc 00358a53 /data/app/org.videolan.vlc.debug-1/lib/arm/libvlc.so (vlc_module_load+710): Routine module_load at /home/dekans/vlc/android/vlc/build-android-arm-linux-androideabi/src/../../src/modules/modules.c:183
Stack frame [#02](https://code.videolan.org/videolan/vlc/-/issues/02) pc 00358c6f /data/app/org.videolan.vlc.debug-1/lib/arm/libvlc.so (module_need+14): Routine module_need at /home/dekans/vlc/android/vlc/build-android-arm-linux-androideabi/src/../../src/modules/modules.c:364
Stack frame [#03](https://code.videolan.org/videolan/vlc/-/issues/03) pc 00362d29 /data/app/org.videolan.vlc.debug-1/lib/arm/libvlc.so: Routine LoadDecoder at /home/dekans/vlc/android/vlc/build-android-arm-linux-androideabi/src/../../src/input/decoder.c:171
Stack frame [#04](https://code.videolan.org/videolan/vlc/-/issues/04) pc 00362b93 /data/app/org.videolan.vlc.debug-1/lib/arm/libvlc.so: Routine input_DecoderNew at /home/dekans/vlc/android/vlc/build-android-arm-linux-androideabi/src/../../src/input/decoder.c:1922
Stack frame [#05](https://code.videolan.org/videolan/vlc/-/issues/05) pc 003a4875 /data/app/org.videolan.vlc.debug-1/lib/arm/libvlc.so: Routine EsCreateDecoder at /home/dekans/vlc/android/vlc/build-android-arm-linux-androideabi/src/../../src/input/es_out.c:1635 (discriminator 1)
Stack frame [#06](https://code.videolan.org/videolan/vlc/-/issues/06) pc 003a4745 /data/app/org.videolan.vlc.debug-1/lib/arm/libvlc.so: Routine EsSelect at /home/dekans/vlc/android/vlc/build-android-arm-linux-androideabi/src/../../src/input/es_out.c:1720
Stack frame [#07](https://code.videolan.org/videolan/vlc/-/issues/07) pc 003a3db1 /data/app/org.videolan.vlc.debug-1/lib/arm/libvlc.so: Routine EsOutSelect at /home/dekans/vlc/android/vlc/build-android-arm-linux-androideabi/src/../../src/input/es_out.c:1905
Stack frame [#08](https://code.videolan.org/videolan/vlc/-/issues/08) pc 003a30e5 /data/app/org.videolan.vlc.debug-1/lib/arm/libvlc.so: Routine EsOutAddSlave at /home/dekans/vlc/android/vlc/build-android-arm-linux-androideabi/src/../../src/input/es_out.c:1602
Stack frame [#09](https://code.videolan.org/videolan/vlc/-/issues/09) pc 003a50cf /data/app/org.videolan.vlc.debug-1/lib/arm/libvlc.so: Routine es_out_Add at /home/dekans/vlc/android/vlc/build-android-arm-linux-androideabi/src/../../include/vlc_es_out.h:118
Stack frame [#10](https://code.videolan.org/videolan/vlc/-/issues/10) pc 0028775d /data/app/org.videolan.vlc.debug-1/lib/arm/libvlc.so: Routine es_out_Add at /home/dekans/vlc/android/vlc/build-android-arm-linux-androideabi/modules/../../include/vlc_es_out.h:118
Stack frame [#11](https://code.videolan.org/videolan/vlc/-/issues/11) pc 0028760d /data/app/org.videolan.vlc.debug-1/lib/arm/libvlc.so: Routine AddAndCreateES at /home/dekans/vlc/android/vlc/build-android-arm-linux-androideabi/modules/../../modules/demux/mpeg/ts.c:2527
Stack frame [#12](https://code.videolan.org/videolan/vlc/-/issues/12) pc 0028d801 /data/app/org.videolan.vlc.debug-1/lib/arm/libvlc.so: Routine PMTCallBack at /home/dekans/vlc/android/vlc/build-android-arm-linux-androideabi/modules/../../modules/demux/mpeg/ts_psi.c:1700
Stack frame [#13](https://code.videolan.org/videolan/vlc/-/issues/13) pc 0086fe73 /data/app/org.videolan.vlc.debug-1/lib/arm/libvlc.so (dvbpsi_pmt_sections_gather+642): Routine dvbpsi_pmt_sections_gather at /home/dekans/vlc/android/vlc/contrib/contrib-android-arm-linux-androideabi/libdvbpsi/src/tables/pmt.c:398
Stack frame [#14](https://code.videolan.org/videolan/vlc/-/issues/14) pc 0086ecb1 /data/app/org.videolan.vlc.debug-1/lib/arm/libvlc.so (dvbpsi_packet_push+752): Routine dvbpsi_packet_push at /home/dekans/vlc/android/vlc/contrib/contrib-android-arm-linux-androideabi/libdvbpsi/src/dvbpsi.c:447
Stack frame [#15](https://code.videolan.org/videolan/vlc/-/issues/15) pc 00287e57 /data/app/org.videolan.vlc.debug-1/lib/arm/libvlc.so: Routine Demux at /home/dekans/vlc/android/vlc/build-android-arm-linux-androideabi/modules/../../modules/demux/mpeg/ts.c:662
Stack frame [#16](https://code.videolan.org/videolan/vlc/-/issues/16) pc 00368d1f /data/app/org.videolan.vlc.debug-1/lib/arm/libvlc.so: Routine demux_Demux at /home/dekans/vlc/android/vlc/build-android-arm-linux-androideabi/src/../../include/vlc_demux.h:347
Stack frame [#17](https://code.videolan.org/videolan/vlc/-/issues/17) pc 00369a27 /data/app/org.videolan.vlc.debug-1/lib/arm/libvlc.so: Routine Run at /home/dekans/vlc/android/vlc/build-android-arm-linux-androideabi/src/../../src/input/input.c:492
Stack frame [#18](https://code.videolan.org/videolan/vlc/-/issues/18) pc 00390831 /data/app/org.videolan.vlc.debug-1/lib/arm/libvlc.so: Routine joinable_thread at /home/dekans/vlc/android/vlc/build-android-arm-linux-androideabi/src/../../src/android/thread.c:224
Stack frame [#19](https://code.videolan.org/videolan/vlc/-/issues/19) pc 000135e7 /system/lib/libc.so (__pthread_start(void*)+30)
Stack frame [#20](https://code.videolan.org/videolan/vlc/-/issues/20) pc 00011513 /system/lib/libc.so (__start_thread+6)