Dear Maintainer, I could reproduce this stack smashing inside a testing amd64 VM.
The stack canary gets overwritten in the stack below. It looks like there is a disagreement of wesnoth and wolfssl in the size of sha/hasher wc_Sha/WOLFSSL_SHA_CTX, the first allocates 112 bytes, the latter thinks it got a pointer to 128 bytes. Because wesnoth got built against libwolfssl-dev 4.4.0+dfsg-2, and this error manifests when run with libwolfssl24 4.5.0+dfsg-3, I am still unsure if this might be a ABI break. At least when installing 4.4.0+dfsg-2 in function wc_InitSha_ex sizeof(*sha) shows also 112. And the game starts up. @Felix Lechner: Hope it is ok to add you in CC? Kind regards, Bernhard (rr) bt #0 InitSha (sha=0x7f745aaf12a0) at wolfcrypt/src/sha.c:349 #1 wc_InitSha_ex (sha=sha@entry=0x7f745aaf12a0, heap=heap@entry=0x0, devId=devId@entry=-2) at wolfcrypt/src/sha.c:497 #2 0x00007f7471e89bdc in wc_InitSha (sha=sha@entry=0x7f745aaf12a0) at wolfcrypt/src/sha.c:775 #3 0x00007f7471f1a2c9 in wolfSSL_SHA_Init (sha=sha@entry=0x7f745aaf12a0) at src/ssl.c:15788 #4 0x00007f7471f1a325 in wolfSSL_SHA1_Init (sha=sha@entry=0x7f745aaf12a0) at src/ssl.c:15832 #5 0x0000559c7d624553 in utils::sha1::sha1 (this=0x7f745aaf1530, str="/usr/share/games/wesnoth/1.14/data/cores.cfg TITLE_SCREEN WESNOTH_VERSION") at ./src/hash.cpp:130 #6 0x0000559c7d1d2404 in game_config::config_cache::read_cache (this=0x559c7ddd7360 <game_config::config_cache::instance()::cache>, file_path="/usr/share/games/wesnoth/1.14/data/cores.cfg", cfg=...) at /usr/include/c++/9/bits/basic_string.h:1936 #7 0x0000559c7d1d347c in game_config::config_cache::load_configs (this=0x559c7ddd7360 <game_config::config_cache::instance()::cache>, config_path="/usr/share/games/wesnoth/1.14/data/cores.cfg", cfg=...) at ./src/config_cache.cpp:293 #8 0x0000559c7cefaa9e in game_config_manager::load_game_config (this=0x7ffed2e85470, force_reload=game_config_manager::NO_FORCE_RELOAD, classification=0x0) at /usr/include/c++/9/bits/basic_string.h:320 #9 0x0000559c7cf11be2 in std::function<void ()>::operator()() const (this=0x7f745aaf1cb0) at /usr/include/c++/9/bits/std_function.h:683 #10 gui2::dialogs::loading_screen::display(std::function<void ()>) (f=...) at ./src/gui/dialogs/loading_screen.cpp:226 #11 0x0000559c7cef6e5e in game_config_manager::load_game_config_with_loadscreen (this=0x7ffed2e85470, force_reload=game_config_manager::NO_FORCE_RELOAD, classification=0x0) at /usr/include/c++/9/bits/std_function.h:87 #12 0x0000559c7cef799e in game_config_manager::init_game_config (this=0x7ffed2e85470, force_reload=game_config_manager::NO_FORCE_RELOAD) at ./src/game_config_manager.cpp:90 #13 0x0000559c7cebcef4 in <lambda()>::operator() (__closure=0x7ffed2e85258, __closure=0x7ffed2e85258) at ./src/wesnoth.cpp:701 #14 std::_Function_handler<void(), do_gameloop(const std::vector<std::__cxx11::basic_string<char> >&)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/9/bits/std_function.h:300 #15 0x0000559c7cf108aa in std::function<void ()>::operator()() const (this=<optimized out>) at /usr/include/c++/9/bits/std_function.h:683 #16 gui2::dialogs::loading_screen::<lambda()>::operator() (__closure=0x559c7f41f338) at ./src/gui/dialogs/loading_screen.cpp:116 #17 boost::detail::thread_data<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> >::run(void) (this=0x559c7f41f200) at /usr/include/boost/thread/detail/thread.hpp:120 #18 0x00007f7471e1bec7 in ?? () from /lib/x86_64-linux-gnu/libboost_thread.so.1.71.0 #19 0x00007f74717c5ea7 in start_thread (arg=<optimized out>) at pthread_create.c:477 #20 0x00007f74716f5eaf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 (rr) print sizeof(*sha) $2 = 128 (rr) print sha $5 = (wc_Sha *) 0x7f745aaf12a0 (rr) ptype /o sha type = struct wc_Sha { /* 0 | 4 */ word32 buffLen; /* 4 | 4 */ word32 loLen; /* 8 | 4 */ word32 hiLen; /* 12 | 64 */ word32 buffer[16]; /* 76 | 20 */ word32 digest[5]; /* 96 | 8 */ void *heap; /* 104 | 4 */ int devId; /* XXX 4-byte hole */ /* 112 | 8 */ void *devCtx; /* 120 | 4 */ word32 flags; /* XXX 4-byte padding */ /* total size (bytes): 128 */ } * https://sources.debian.org/src/wolfssl/4.5.0+dfsg-4/wolfssl/openssl/sha.h/#L40 (rr) print sizeof(hasher) $3 = 112 (rr) print &hasher $4 = (SHA_CTX *) 0x7f745aaf12a0 (rr) ptype /o hasher type = struct WOLFSSL_SHA_CTX { /* 0 | 112 */ void *holder[14]; /* total size (bytes): 112 */ } https://sources.debian.org/src/wesnoth-1.14/1:1.14.13-1/src/hash.cpp/#L130
# Bullseye/testing amd64 qemu VM 2020-10-02 apt update apt dist-upgrade apt install systemd-coredump mc sddm plasma-desktop sshfs gdb libcapnp-dev konsole tmux wesnoth wesnoth-1.14-core-dbgsym libwolfssl24-dbgsym reboot VM: echo 1 > /proc/sys/kernel/perf_event_paranoid mkdir -p /home/bernhard/data/entwicklung/2020/rr/2020-10-02-amd64 sshfs -o allow_other,uid=1000,gid=1000 bernhard@192.168.178.25:/home/bernhard/data/entwicklung/2020/rr/2020-10-02-amd64 /home/bernhard/data/entwicklung/2020/rr/2020-10-02-amd64 wesnoth /home/bernhard/data/entwicklung/2020/rr/2020-10-02-amd64/obj/bin/rr wesnoth journalctl -e coredumpctl list coredumpctl gdb 2291 set width 0 set pagination off bt /home/bernhard/data/entwicklung/2020/rr/2020-10-02-amd64/obj/bin/rr replay /home/benutzer/.local/share/rr/wesnoth-0 set width 0 set pagination off display/i $pc cont bt root@debian:~# coredumpctl list TIME PID UID GID SIG COREFILE EXE Fri 2020-10-02 16:09:04 CEST 2291 1000 1000 6 present /usr/games/wesnoth-1.14 benutzer@debian:~$ wesnoth Battle for Wesnoth v1.14.13 Started on Fri Oct 2 16:09:00 2020 Data directory: /usr/share/games/wesnoth/1.14 User configuration directory: /home/USER/.config/wesnoth-1.14 User data directory: /home/USER/.config/wesnoth-1.14 Cache directory: /home/USER/.config/wesnoth-1.14/cache Setting mode to 1280x720 *** stack smashing detected ***: terminated Abgebrochen (Speicherabzug geschrieben) benutzer@debian:~$ /home/bernhard/data/entwicklung/2020/rr/2020-10-02-amd64/obj/bin/rr wesnoth rr: Saving execution to trace directory `/home/benutzer/.local/share/rr/wesnoth-0'. Battle for Wesnoth v1.14.13 Started on Fri Oct 2 16:13:33 2020 Data directory: /usr/share/games/wesnoth/1.14 User configuration directory: /home/USER/.config/wesnoth-1.14 User data directory: /home/USER/.config/wesnoth-1.14 Cache directory: /home/USER/.config/wesnoth-1.14/cache shared memfd open() failed: Function not implemented shared memfd open() failed: Function not implemented Setting mode to 1280x720 *** stack smashing detected ***: terminated Abgebrochen root@debian:~# coredumpctl gdb 2291 PID: 2291 (wesnoth) UID: 1000 (benutzer) GID: 1000 (benutzer) Signal: 6 (ABRT) Timestamp: Fri 2020-10-02 16:09:01 CEST (6min ago) Command Line: wesnoth Executable: /usr/games/wesnoth-1.14 Control Group: /user.slice/user-1000.slice/session-5.scope Unit: session-5.scope Slice: user-1000.slice Session: 5 Owner UID: 1000 (benutzer) Boot ID: cc49beb4c4c8408681e5f77439c0db3a Machine ID: 33f18f39d2a9438eb75b0ed52848afcd Hostname: debian Storage: /var/lib/systemd/coredump/core.wesnoth.1000.cc49beb4c4c8408681e5f77439c0db3a.2291.1601647741000000.zst Message: Process 2291 (wesnoth) of user 1000 dumped core. Stack trace of thread 2303: #0 0x00007fa5d1b6cdb1 __GI_raise (libc.so.6 + 0x3bdb1) #1 0x00007fa5d1b56537 __GI_abort (libc.so.6 + 0x25537) #2 0x00007fa5d1baf828 __libc_message (libc.so.6 + 0x7e828) #3 0x00007fa5d1c3e712 __GI___fortify_fail (libc.so.6 + 0x10d712) #4 0x00007fa5d1c3e6f0 __stack_chk_fail (libc.so.6 + 0x10d6f0) #5 0x000055a5b714a58d n/a (wesnoth-1.14 + 0xb7358d) #6 0x000055a5b6cf8404 n/a (wesnoth-1.14 + 0x721404) #7 0x000055a5b6cf947c n/a (wesnoth-1.14 + 0x72247c) #8 0x000055a5b6a20a9e n/a (wesnoth-1.14 + 0x449a9e) #9 0x000055a5b6a37be2 n/a (wesnoth-1.14 + 0x460be2) #10 0x000055a5b6a1ce5e n/a (wesnoth-1.14 + 0x445e5e) #11 0x000055a5b6a1d99e n/a (wesnoth-1.14 + 0x44699e) #12 0x000055a5b69e2ef4 n/a (wesnoth-1.14 + 0x40bef4) #13 0x000055a5b6a368aa n/a (wesnoth-1.14 + 0x45f8aa) #14 0x00007fa5d2354ec7 n/a (libboost_thread.so.1.71.0 + 0x10ec7) #15 0x00007fa5d1cfeea7 start_thread (libpthread.so.0 + 0x8ea7) #16 0x00007fa5d1c2eeaf __clone (libc.so.6 + 0xfdeaf) Stack trace of thread 2294: #0 0x00007fa5d1d057b2 futex_wait_cancelable (libpthread.so.0 + 0xf7b2) #1 0x00007fa5cb13f6fb n/a (swrast_dri.so + 0x69b6fb) #2 0x00007fa5cb13f097 n/a (swrast_dri.so + 0x69b097) #3 0x00007fa5d1cfeea7 start_thread (libpthread.so.0 + 0x8ea7) #4 0x00007fa5d1c2eeaf __clone (libc.so.6 + 0xfdeaf) Stack trace of thread 2292: #0 0x00007fa5d1d08388 futex_abstimed_wait_cancelable (libpthread.so.0 + 0x12388) #1 0x00007fa5d1d084b3 __new_sem_wait_slow (libpthread.so.0 + 0x124b3) #2 0x00007fa5d292f11f n/a (libSDL2-2.0.so.0 + 0xfa11f) #3 0x00007fa5d28baae6 n/a (libSDL2-2.0.so.0 + 0x85ae6) #4 0x00007fa5d28ba3ac n/a (libSDL2-2.0.so.0 + 0x853ac) #5 0x00007fa5d292ed49 n/a (libSDL2-2.0.so.0 + 0xf9d49) #6 0x00007fa5d1cfeea7 start_thread (libpthread.so.0 + 0x8ea7) #7 0x00007fa5d1c2eeaf __clone (libc.so.6 + 0xfdeaf) Stack trace of thread 2302: #0 0x00007fa5d1c245b6 __ppoll (libc.so.6 + 0xf35b6) #1 0x00007fa5d1a00ec1 pa_mainloop_poll (libpulse.so.0 + 0x25ec1) #2 0x00007fa5d1a014bf pa_mainloop_iterate (libpulse.so.0 + 0x264bf) #3 0x00007fa5d2913717 n/a (libSDL2-2.0.so.0 + 0xde717) #4 0x00007fa5d285aaf6 n/a (libSDL2-2.0.so.0 + 0x25af6) #5 0x00007fa5d28ba3ac n/a (libSDL2-2.0.so.0 + 0x853ac) #6 0x00007fa5d292ed49 n/a (libSDL2-2.0.so.0 + 0xf9d49) #7 0x00007fa5d1cfeea7 start_thread (libpthread.so.0 + 0x8ea7) #8 0x00007fa5d1c2eeaf __clone (libc.so.6 + 0xfdeaf) Stack trace of thread 2293: #0 0x00007fa5d1d057b2 futex_wait_cancelable (libpthread.so.0 + 0xf7b2) #1 0x00007fa5cb13f6fb n/a (swrast_dri.so + 0x69b6fb) #2 0x00007fa5cb13f097 n/a (swrast_dri.so + 0x69b097) #3 0x00007fa5d1cfeea7 start_thread (libpthread.so.0 + 0x8ea7) #4 0x00007fa5d1c2eeaf __clone (libc.so.6 + 0xfdeaf) Stack trace of thread 2300: #0 0x00007fa5d1d057b2 futex_wait_cancelable (libpthread.so.0 + 0xf7b2) #1 0x00007fa5cb13ccd3 n/a (swrast_dri.so + 0x698cd3) #2 0x00007fa5cb13cc67 n/a (swrast_dri.so + 0x698c67) #3 0x00007fa5d1cfeea7 start_thread (libpthread.so.0 + 0x8ea7) #4 0x00007fa5d1c2eeaf __clone (libc.so.6 + 0xfdeaf) Stack trace of thread 2296: #0 0x00007fa5d1d057b2 futex_wait_cancelable (libpthread.so.0 + 0xf7b2) #1 0x00007fa5cb13f6fb n/a (swrast_dri.so + 0x69b6fb) #2 0x00007fa5cb13f097 n/a (swrast_dri.so + 0x69b097) #3 0x00007fa5d1cfeea7 start_thread (libpthread.so.0 + 0x8ea7) #4 0x00007fa5d1c2eeaf __clone (libc.so.6 + 0xfdeaf) Stack trace of thread 2299: #0 0x00007fa5d1d057b2 futex_wait_cancelable (libpthread.so.0 + 0xf7b2) #1 0x00007fa5cb13ccd3 n/a (swrast_dri.so + 0x698cd3) #2 0x00007fa5cb13cc67 n/a (swrast_dri.so + 0x698c67) #3 0x00007fa5d1cfeea7 start_thread (libpthread.so.0 + 0x8ea7) #4 0x00007fa5d1c2eeaf __clone (libc.so.6 + 0xfdeaf) Stack trace of thread 2298: #0 0x00007fa5d1d057b2 futex_wait_cancelable (libpthread.so.0 + 0xf7b2) #1 0x00007fa5cb13ccd3 n/a (swrast_dri.so + 0x698cd3) #2 0x00007fa5cb13cc67 n/a (swrast_dri.so + 0x698c67) #3 0x00007fa5d1cfeea7 start_thread (libpthread.so.0 + 0x8ea7) #4 0x00007fa5d1c2eeaf __clone (libc.so.6 + 0xfdeaf) Stack trace of thread 2297: #0 0x00007fa5d1d057b2 futex_wait_cancelable (libpthread.so.0 + 0xf7b2) #1 0x00007fa5cb13ccd3 n/a (swrast_dri.so + 0x698cd3) #2 0x00007fa5cb13cc67 n/a (swrast_dri.so + 0x698c67) #3 0x00007fa5d1cfeea7 start_thread (libpthread.so.0 + 0x8ea7) #4 0x00007fa5d1c2eeaf __clone (libc.so.6 + 0xfdeaf) Stack trace of thread 2291: #0 0x00007fa5d1bf6d21 __GI___clock_nanosleep (libc.so.6 + 0xc5d21) #1 0x00007fa5d1bfc503 __GI___nanosleep (libc.so.6 + 0xcb503) #2 0x00007fa5d2934123 n/a (libSDL2-2.0.so.0 + 0xff123) #3 0x000055a5b7338497 n/a (wesnoth-1.14 + 0xd61497) #4 0x000055a5b6a3fde5 n/a (wesnoth-1.14 + 0x468de5) #5 0x000055a5b6a37c49 n/a (wesnoth-1.14 + 0x460c49) #6 0x000055a5b69a4420 main (wesnoth-1.14 + 0x3cd420) #7 0x00007fa5d1b57cca __libc_start_main (libc.so.6 + 0x26cca) #8 0x000055a5b69e2a9a n/a (wesnoth-1.14 + 0x40ba9a) Stack trace of thread 2295: #0 0x00007fa5d1d057b2 futex_wait_cancelable (libpthread.so.0 + 0xf7b2) #1 0x00007fa5cb13f6fb n/a (swrast_dri.so + 0x69b6fb) #2 0x00007fa5cb13f097 n/a (swrast_dri.so + 0x69b097) #3 0x00007fa5d1cfeea7 start_thread (libpthread.so.0 + 0x8ea7) #4 0x00007fa5d1c2eeaf __clone (libc.so.6 + 0xfdeaf) Stack trace of thread 2301: #0 0x00007fa5d1c245b6 __ppoll (libc.so.6 + 0xf35b6) #1 0x00007fa5d1a00ec1 pa_mainloop_poll (libpulse.so.0 + 0x25ec1) #2 0x00007fa5d1a014bf pa_mainloop_iterate (libpulse.so.0 + 0x264bf) #3 0x00007fa5d1a01570 pa_mainloop_run (libpulse.so.0 + 0x26570) #4 0x00007fa5d2913a7f n/a (libSDL2-2.0.so.0 + 0xdea7f) #5 0x00007fa5d28ba3ac n/a (libSDL2-2.0.so.0 + 0x853ac) #6 0x00007fa5d292ed49 n/a (libSDL2-2.0.so.0 + 0xf9d49) #7 0x00007fa5d1cfeea7 start_thread (libpthread.so.0 + 0x8ea7) #8 0x00007fa5d1c2eeaf __clone (libc.so.6 + 0xfdeaf) GNU gdb (Debian 9.2-1) 9.2 Copyright (C) 2020 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from /usr/games/wesnoth-1.14... (No debugging symbols found in /usr/games/wesnoth-1.14) [New LWP 2303] [New LWP 2294] [New LWP 2292] [New LWP 2302] [New LWP 2293] [New LWP 2300] [New LWP 2296] [New LWP 2299] [New LWP 2298] [New LWP 2297] [New LWP 2291] [New LWP 2295] [New LWP 2301] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Core was generated by `wesnoth'. Program terminated with signal SIGABRT, Aborted. #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 50 ../sysdeps/unix/sysv/linux/raise.c: Datei oder Verzeichnis nicht gefunden. [Current thread is 1 (Thread 0x7fa57b7fe700 (LWP 2303))] (gdb) set width 0 (gdb) set pagination off (gdb) bt #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 #1 0x00007fa5d1b56537 in __GI_abort () at abort.c:79 #2 0x00007fa5d1baf828 in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0x7fa5d1cbdc28 "*** %s ***: terminated\n") at ../sysdeps/posix/libc_fatal.c:155 #3 0x00007fa5d1c3e712 in __GI___fortify_fail (msg=msg@entry=0x7fa5d1cbdc10 "stack smashing detected") at fortify_fail.c:26 #4 0x00007fa5d1c3e6f0 in __stack_chk_fail () at stack_chk_fail.c:24 #5 0x000055a5b714a58d in ?? () #6 0x000055a5b6cf8404 in ?? () #7 0x000055a5b6cf947c in ?? () #8 0x000055a5b6a20a9e in ?? () #9 0x000055a5b6a37be2 in ?? () #10 0x000055a5b6a1ce5e in ?? () #11 0x000055a5b6a1d99e in ?? () #12 0x000055a5b69e2ef4 in ?? () #13 0x000055a5b6a368aa in ?? () #14 0x00007fa5d2354ec7 in ?? () from /lib/x86_64-linux-gnu/libboost_thread.so.1.71.0 #15 0x00007fa5d1cfeea7 in start_thread (arg=<optimized out>) at pthread_create.c:477 #16 0x00007fa5d1c2eeaf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 # With symbols: (gdb) bt #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 #1 0x00007fa5d1b56537 in __GI_abort () at abort.c:79 #2 0x00007fa5d1baf828 in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0x7fa5d1cbdc28 "*** %s ***: terminated\n") at ../sysdeps/posix/libc_fatal.c:155 #3 0x00007fa5d1c3e712 in __GI___fortify_fail (msg=msg@entry=0x7fa5d1cbdc10 "stack smashing detected") at fortify_fail.c:26 #4 0x00007fa5d1c3e6f0 in __stack_chk_fail () at stack_chk_fail.c:24 #5 0x000055a5b714a58d in utils::sha1::sha1 (this=0x7fa57b7f5530, str="/usr/share/games/wesnoth/1.14/data/cores.cfg TITLE_SCREEN WESNOTH_VERSION") at /usr/include/c++/9/array:234 #6 0x000055a5b6cf8404 in game_config::config_cache::read_cache (this=0x55a5b78fd360 <game_config::config_cache::instance()::cache>, file_path="/usr/share/games/wesnoth/1.14/data/cores.cfg", cfg=...) at /usr/include/c++/9/bits/basic_string.h:1936 #7 0x000055a5b6cf947c in game_config::config_cache::load_configs (this=0x55a5b78fd360 <game_config::config_cache::instance()::cache>, config_path="/usr/share/games/wesnoth/1.14/data/cores.cfg", cfg=...) at ./src/config_cache.cpp:293 #8 0x000055a5b6a20a9e in game_config_manager::load_game_config (this=0x7ffd9b38a190, force_reload=game_config_manager::NO_FORCE_RELOAD, classification=0x0) at /usr/include/c++/9/bits/basic_string.h:320 #9 0x000055a5b6a37be2 in std::function<void ()>::operator()() const (this=0x7fa57b7f5cb0) at /usr/include/c++/9/bits/std_function.h:683 #10 gui2::dialogs::loading_screen::display(std::function<void ()>) (f=...) at ./src/gui/dialogs/loading_screen.cpp:226 #11 0x000055a5b6a1ce5e in game_config_manager::load_game_config_with_loadscreen (this=0x7ffd9b38a190, force_reload=game_config_manager::NO_FORCE_RELOAD, classification=0x0) at /usr/include/c++/9/bits/std_function.h:87 #12 0x000055a5b6a1d99e in game_config_manager::init_game_config (this=0x7ffd9b38a190, force_reload=game_config_manager::NO_FORCE_RELOAD) at ./src/game_config_manager.cpp:90 #13 0x000055a5b69e2ef4 in <lambda()>::operator() (__closure=0x7ffd9b389f78, __closure=0x7ffd9b389f78) at ./src/wesnoth.cpp:701 #14 std::_Function_handler<void(), do_gameloop(const std::vector<std::__cxx11::basic_string<char> >&)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/9/bits/std_function.h:300 #15 0x000055a5b6a368aa in std::function<void ()>::operator()() const (this=<optimized out>) at /usr/include/c++/9/bits/std_function.h:683 #16 gui2::dialogs::loading_screen::<lambda()>::operator() (__closure=0x55a5b824fba8) at ./src/gui/dialogs/loading_screen.cpp:116 #17 boost::detail::thread_data<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> >::run(void) (this=0x55a5b824fa70) at /usr/include/boost/thread/detail/thread.hpp:120 #18 0x00007fa5d2354ec7 in ?? () from /lib/x86_64-linux-gnu/libboost_thread.so.1.71.0 #19 0x00007fa5d1cfeea7 in start_thread (arg=<optimized out>) at pthread_create.c:477 #20 0x00007fa5d1c2eeaf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 benutzer@debian:~$ /home/bernhard/data/entwicklung/2020/rr/2020-10-02-amd64/obj/bin/rr replay /home/benutzer/.local/share/rr/wesnoth-0 GNU gdb (Debian 9.2-1) 9.2 Copyright (C) 2020 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from /usr/games/wesnoth-1.14... Reading symbols from /usr/lib/debug/.build-id/c6/a0c29bed7e17d7652ec6b895222ac525df1cc8.debug... Really redefine built-in command "restart"? (y or n) [answered Y; input not from terminal] Remote debugging using 127.0.0.1:8519 Reading symbols from /lib64/ld-linux-x86-64.so.2... Reading symbols from /usr/lib/debug/.build-id/63/7706dbbbd112d03fbad61ca30125b48e60aa92.debug... 0x00007f7472488090 in _start () from /lib64/ld-linux-x86-64.so.2 (rr) set width 0 (rr) set pagination off (rr) display/i $pc 1: x/i $pc => 0x7f7472488090 <_start>: mov %rsp,%rdi (rr) cont Continuing. Battle for Wesnoth v1.14.13 Started on Fri Oct 2 16:13:33 2020 Data directory: /usr/share/games/wesnoth/1.14 User configuration directory: /home/USER/.config/wesnoth-1.14 User data directory: /home/USER/.config/wesnoth-1.14 Cache directory: /home/USER/.config/wesnoth-1.14/cache shared memfd open() failed: Function not implemented shared memfd open() failed: Function not implemented Setting mode to 1280x720 *** stack smashing detected ***: terminated [New Thread 8081.8087] [New Thread 8081.8083] [New Thread 8081.8084] [New Thread 8081.8085] Thread 2 received signal SIGABRT, Aborted. [Switching to Thread 8081.8087] __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 50 ../sysdeps/unix/sysv/linux/raise.c: Datei oder Verzeichnis nicht gefunden. 1: x/i $pc => 0x7f7471633db1 <__GI_raise+321>: mov 0x108(%rsp),%rax (rr) bt #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 #1 0x00007f747161d537 in __GI_abort () at abort.c:79 #2 0x00007f7471676828 in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0x7f7471784c28 "*** %s ***: terminated\n") at ../sysdeps/posix/libc_fatal.c:155 #3 0x00007f7471705712 in __GI___fortify_fail (msg=msg@entry=0x7f7471784c10 "stack smashing detected") at fortify_fail.c:26 #4 0x00007f74717056f0 in __stack_chk_fail () at stack_chk_fail.c:24 #5 0x0000559c7d62458d in utils::sha1::sha1 (this=0x7f745aaf1530, str="/usr/share/games/wesnoth/1.14/data/cores.cfg TITLE_SCREEN WESNOTH_VERSION") at /usr/include/c++/9/array:234 #6 0x0000559c7d1d2404 in game_config::config_cache::read_cache (this=0x559c7ddd7360 <game_config::config_cache::instance()::cache>, file_path="/usr/share/games/wesnoth/1.14/data/cores.cfg", cfg=...) at /usr/include/c++/9/bits/basic_string.h:1936 #7 0x0000559c7d1d347c in game_config::config_cache::load_configs (this=0x559c7ddd7360 <game_config::config_cache::instance()::cache>, config_path="/usr/share/games/wesnoth/1.14/data/cores.cfg", cfg=...) at ./src/config_cache.cpp:293 #8 0x0000559c7cefaa9e in game_config_manager::load_game_config (this=0x7ffed2e85470, force_reload=game_config_manager::NO_FORCE_RELOAD, classification=0x0) at /usr/include/c++/9/bits/basic_string.h:320 #9 0x0000559c7cf11be2 in std::function<void ()>::operator()() const (this=0x7f745aaf1cb0) at /usr/include/c++/9/bits/std_function.h:683 #10 gui2::dialogs::loading_screen::display(std::function<void ()>) (f=...) at ./src/gui/dialogs/loading_screen.cpp:226 #11 0x0000559c7cef6e5e in game_config_manager::load_game_config_with_loadscreen (this=0x7ffed2e85470, force_reload=game_config_manager::NO_FORCE_RELOAD, classification=0x0) at /usr/include/c++/9/bits/std_function.h:87 #12 0x0000559c7cef799e in game_config_manager::init_game_config (this=0x7ffed2e85470, force_reload=game_config_manager::NO_FORCE_RELOAD) at ./src/game_config_manager.cpp:90 #13 0x0000559c7cebcef4 in <lambda()>::operator() (__closure=0x7ffed2e85258, __closure=0x7ffed2e85258) at ./src/wesnoth.cpp:701 #14 std::_Function_handler<void(), do_gameloop(const std::vector<std::__cxx11::basic_string<char> >&)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/9/bits/std_function.h:300 #15 0x0000559c7cf108aa in std::function<void ()>::operator()() const (this=<optimized out>) at /usr/include/c++/9/bits/std_function.h:683 #16 gui2::dialogs::loading_screen::<lambda()>::operator() (__closure=0x559c7f41f338) at ./src/gui/dialogs/loading_screen.cpp:116 #17 boost::detail::thread_data<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> >::run(void) (this=0x559c7f41f200) at /usr/include/boost/thread/detail/thread.hpp:120 #18 0x00007f7471e1bec7 in ?? () from /lib/x86_64-linux-gnu/libboost_thread.so.1.71.0 #19 0x00007f74717c5ea7 in start_thread (arg=<optimized out>) at pthread_create.c:477 #20 0x00007f74716f5eaf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 (rr) reverse-finish Run back to call of #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 Thread 2 received signal SIGABRT, Aborted. __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 50 in ../sysdeps/unix/sysv/linux/raise.c 1: x/i $pc => 0x7f7471633db1 <__GI_raise+321>: mov 0x108(%rsp),%rax (rr) Run back to call of #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 0x00007f747161d532 in __GI_abort () at abort.c:79 79 abort.c: Datei oder Verzeichnis nicht gefunden. 1: x/i $pc => 0x7f747161d532 <__GI_abort+286>: callq 0x7f7471633c70 <__GI_raise> (rr) Run back to call of #0 0x00007f747161d532 in __GI_abort () at abort.c:79 __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0x7f7471784c28 "*** %s ***: terminated\n") at ../sysdeps/posix/libc_fatal.c:155 155 ../sysdeps/posix/libc_fatal.c: Datei oder Verzeichnis nicht gefunden. 1: x/i $pc => 0x7f7471676823 <__libc_message+595>: callq 0x7f747161d414 <__GI_abort> (rr) Run back to call of #0 __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0x7f7471784c28 "*** %s ***: terminated\n") at ../sysdeps/posix/libc_fatal.c:155 0x00007f747170570d in __GI___fortify_fail (msg=msg@entry=0x7f7471784c10 "stack smashing detected") at fortify_fail.c:26 26 fortify_fail.c: Datei oder Verzeichnis nicht gefunden. 1: x/i $pc => 0x7f747170570d <__GI___fortify_fail+29>: callq 0x7f74716765d0 <__libc_message> (rr) Run back to call of #0 0x00007f747170570d in __GI___fortify_fail (msg=msg@entry=0x7f7471784c10 "stack smashing detected") at fortify_fail.c:26 0x00007f74717056eb in __stack_chk_fail () at stack_chk_fail.c:24 24 stack_chk_fail.c: Datei oder Verzeichnis nicht gefunden. 1: x/i $pc => 0x7f74717056eb <__stack_chk_fail+11>: callq 0x7f74717056f0 <__GI___fortify_fail> (rr) Run back to call of #0 0x00007f74717056eb in __stack_chk_fail () at stack_chk_fail.c:24 0x0000559c7d624588 in utils::sha1::sha1 (this=0x7f745aaf1530, str="/usr/share/games/wesnoth/1.14/data/cores.cfg TITLE_SCREEN WESNOTH_VERSION") at /usr/include/c++/9/array:234 234 /usr/include/c++/9/array: Datei oder Verzeichnis nicht gefunden. 1: x/i $pc => 0x559c7d624588 <utils::sha1::sha1(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)+104>: callq 0x559c7cd9c5a0 <__stack_chk_fail@plt> (rr) reverse-nexti 0x0000559c7d62457d 234 in /usr/include/c++/9/array 1: x/i $pc => 0x559c7d62457d <utils::sha1::sha1(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)+93>: jne 0x559c7d624588 <utils::sha1::sha1(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)+104> (rr) 0x0000559c7d624574 234 in /usr/include/c++/9/array 1: x/i $pc => 0x559c7d624574 <utils::sha1::sha1(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)+84>: xor %fs:0x28,%rax (rr) 0x0000559c7d62456f 234 in /usr/include/c++/9/array 1: x/i $pc => 0x559c7d62456f <utils::sha1::sha1(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)+79>: mov 0x78(%rsp),%rax (rr) print/x $rsp $1 = 0x7f745aaf12a0 (rr) watch * (0x7f745aaf12a0 + 0x78) Hardware watchpoint 1: * (0x7f745aaf12a0 + 0x78) (rr) reverse-cont Continuing. Thread 2 hit Hardware watchpoint 1: * (0x7f745aaf12a0 + 0x78) Old value = 0 New value = -435188992 InitSha (sha=0x7f745aaf12a0) at wolfcrypt/src/sha.c:349 349 wolfcrypt/src/sha.c: Datei oder Verzeichnis nicht gefunden. 1: x/i $pc => 0x7f7471e8961f <wc_InitSha_ex+63>: movl $0x0,0x78(%rdi) (rr) bt #0 InitSha (sha=0x7f745aaf12a0) at wolfcrypt/src/sha.c:349 #1 wc_InitSha_ex (sha=sha@entry=0x7f745aaf12a0, heap=heap@entry=0x0, devId=devId@entry=-2) at wolfcrypt/src/sha.c:497 #2 0x00007f7471e89bdc in wc_InitSha (sha=sha@entry=0x7f745aaf12a0) at wolfcrypt/src/sha.c:775 #3 0x00007f7471f1a2c9 in wolfSSL_SHA_Init (sha=sha@entry=0x7f745aaf12a0) at src/ssl.c:15788 #4 0x00007f7471f1a325 in wolfSSL_SHA1_Init (sha=sha@entry=0x7f745aaf12a0) at src/ssl.c:15832 #5 0x0000559c7d624553 in utils::sha1::sha1 (this=0x7f745aaf1530, str="/usr/share/games/wesnoth/1.14/data/cores.cfg TITLE_SCREEN WESNOTH_VERSION") at ./src/hash.cpp:130 #6 0x0000559c7d1d2404 in game_config::config_cache::read_cache (this=0x559c7ddd7360 <game_config::config_cache::instance()::cache>, file_path="/usr/share/games/wesnoth/1.14/data/cores.cfg", cfg=...) at /usr/include/c++/9/bits/basic_string.h:1936 #7 0x0000559c7d1d347c in game_config::config_cache::load_configs (this=0x559c7ddd7360 <game_config::config_cache::instance()::cache>, config_path="/usr/share/games/wesnoth/1.14/data/cores.cfg", cfg=...) at ./src/config_cache.cpp:293 #8 0x0000559c7cefaa9e in game_config_manager::load_game_config (this=0x7ffed2e85470, force_reload=game_config_manager::NO_FORCE_RELOAD, classification=0x0) at /usr/include/c++/9/bits/basic_string.h:320 #9 0x0000559c7cf11be2 in std::function<void ()>::operator()() const (this=0x7f745aaf1cb0) at /usr/include/c++/9/bits/std_function.h:683 #10 gui2::dialogs::loading_screen::display(std::function<void ()>) (f=...) at ./src/gui/dialogs/loading_screen.cpp:226 #11 0x0000559c7cef6e5e in game_config_manager::load_game_config_with_loadscreen (this=0x7ffed2e85470, force_reload=game_config_manager::NO_FORCE_RELOAD, classification=0x0) at /usr/include/c++/9/bits/std_function.h:87 #12 0x0000559c7cef799e in game_config_manager::init_game_config (this=0x7ffed2e85470, force_reload=game_config_manager::NO_FORCE_RELOAD) at ./src/game_config_manager.cpp:90 #13 0x0000559c7cebcef4 in <lambda()>::operator() (__closure=0x7ffed2e85258, __closure=0x7ffed2e85258) at ./src/wesnoth.cpp:701 #14 std::_Function_handler<void(), do_gameloop(const std::vector<std::__cxx11::basic_string<char> >&)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/9/bits/std_function.h:300 #15 0x0000559c7cf108aa in std::function<void ()>::operator()() const (this=<optimized out>) at /usr/include/c++/9/bits/std_function.h:683 #16 gui2::dialogs::loading_screen::<lambda()>::operator() (__closure=0x559c7f41f338) at ./src/gui/dialogs/loading_screen.cpp:116 #17 boost::detail::thread_data<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> >::run(void) (this=0x559c7f41f200) at /usr/include/boost/thread/detail/thread.hpp:120 #18 0x00007f7471e1bec7 in ?? () from /lib/x86_64-linux-gnu/libboost_thread.so.1.71.0 #19 0x00007f74717c5ea7 in start_thread (arg=<optimized out>) at pthread_create.c:477 #20 0x00007f74716f5eaf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 (rr) print sizeof(*sha) $2 = 128 (rr) print sha $5 = (wc_Sha *) 0x7f745aaf12a0 (rr) ptype /o sha type = struct wc_Sha { /* 0 | 4 */ word32 buffLen; /* 4 | 4 */ word32 loLen; /* 8 | 4 */ word32 hiLen; /* 12 | 64 */ word32 buffer[16]; /* 76 | 20 */ word32 digest[5]; /* 96 | 8 */ void *heap; /* 104 | 4 */ int devId; /* XXX 4-byte hole */ /* 112 | 8 */ void *devCtx; /* 120 | 4 */ word32 flags; /* XXX 4-byte padding */ /* total size (bytes): 128 */ } * (rr) up #1 wc_InitSha_ex (sha=sha@entry=0x7f745aaf12a0, heap=heap@entry=0x0, devId=devId@entry=-2) at wolfcrypt/src/sha.c:497 497 in wolfcrypt/src/sha.c (rr) #2 0x00007f7471e89bdc in wc_InitSha (sha=sha@entry=0x7f745aaf12a0) at wolfcrypt/src/sha.c:775 775 in wolfcrypt/src/sha.c (rr) #3 0x00007f7471f1a2c9 in wolfSSL_SHA_Init (sha=sha@entry=0x7f745aaf12a0) at src/ssl.c:15788 15788 src/ssl.c: Datei oder Verzeichnis nicht gefunden. (rr) #4 0x00007f7471f1a325 in wolfSSL_SHA1_Init (sha=sha@entry=0x7f745aaf12a0) at src/ssl.c:15832 15832 in src/ssl.c (rr) #5 0x0000559c7d624553 in utils::sha1::sha1 (this=0x7f745aaf1530, str="/usr/share/games/wesnoth/1.14/data/cores.cfg TITLE_SCREEN WESNOTH_VERSION") at ./src/hash.cpp:130 130 ./src/hash.cpp: Datei oder Verzeichnis nicht gefunden. (rr) print sizeof(hasher) $3 = 112 (rr) print &hasher $4 = (SHA_CTX *) 0x7f745aaf12a0 (rr) ptype /o hasher type = struct WOLFSSL_SHA_CTX { /* 0 | 112 */ void *holder[14]; /* total size (bytes): 112 */ } (rr) down #4 0x00007f7471f1a325 in wolfSSL_SHA1_Init (sha=sha@entry=0x7f745aaf12a0) at src/ssl.c:15832 15832 src/ssl.c: Datei oder Verzeichnis nicht gefunden. (rr) #3 0x00007f7471f1a2c9 in wolfSSL_SHA_Init (sha=sha@entry=0x7f745aaf12a0) at src/ssl.c:15788 15788 in src/ssl.c (rr) #2 0x00007f7471e89bdc in wc_InitSha (sha=sha@entry=0x7f745aaf12a0) at wolfcrypt/src/sha.c:775 775 wolfcrypt/src/sha.c: Datei oder Verzeichnis nicht gefunden. (rr) #1 wc_InitSha_ex (sha=sha@entry=0x7f745aaf12a0, heap=heap@entry=0x0, devId=devId@entry=-2) at wolfcrypt/src/sha.c:497 497 in wolfcrypt/src/sha.c (rr) #0 InitSha (sha=0x7f745aaf12a0) at wolfcrypt/src/sha.c:349 349 in wolfcrypt/src/sha.c (rr) reverse-cont Continuing. Thread 2 hit Hardware watchpoint 1: * (0x7f745aaf12a0 + 0x78) Old value = -435188992 New value = 2111665008 0x0000559c7d624537 in utils::sha1::sha1 (this=0x7f745aaf1530, str="/usr/share/games/wesnoth/1.14/data/cores.cfg TITLE_SCREEN WESNOTH_VERSION") at ./src/hash.cpp:126 126 ./src/hash.cpp: Datei oder Verzeichnis nicht gefunden. 1: x/i $pc => 0x559c7d624537 <utils::sha1::sha1(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)+23>: mov %rax,0x78(%rsp) (rr) reverse-nexti 0x0000559c7d62452e 126 in ./src/hash.cpp 1: x/i $pc => 0x559c7d62452e <utils::sha1::sha1(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)+14>: mov %fs:0x28,%rax https://buildd.debian.org/status/fetch.php?pkg=wesnoth-1.14&arch=amd64&ver=1%3A1.14.13-1&stamp=1592429180&raw=0 Get:333 https://deb.debian.org/debian unstable/main amd64 libwolfssl24 amd64 4.4.0+dfsg-2 [608 kB] Get:334 https://deb.debian.org/debian unstable/main amd64 libwolfssl-dev amd64 4.4.0+dfsg-2 [2853 kB] root@debian:~# dpkg -l | grep -i wolf ii libwolfssl24:amd64 4.5.0+dfsg-3 amd64 wolfSSL encryption library ii libwolfssl24-dbgsym:amd64 4.5.0+dfsg-3 amd64 debug symbols for libwolfssl24 https://sources.debian.org/src/wolfssl/4.5.0+dfsg-4/wolfssl/openssl/sha.h/#L40 https://sources.debian.org/src/wesnoth-1.14/1:1.14.13-1/src/hash.cpp/#L130 https://snapshot.debian.org/archive/debian/20200512T204242Z/pool/main/w/wolfssl/libwolfssl24_4.4.0%2Bdfsg-2_amd64.deb https://snapshot.debian.org/archive/debian-debug/20200512T203632Z/pool/main/w/wolfssl/libwolfssl24-dbgsym_4.4.0%2Bdfsg-2_amd64.deb