Opened 3 years ago

Closed 3 years ago

#12997 closed defect (fixed)

Crashes when LAN server is scanned with nmap

Reported by: naoliv Owned by: sluicebox
Priority: normal Component: Cloud
Version: Keywords:
Cc: Game:

Description

With the LAN server enabled and scanning it's port with nmap, scummvm crashes at:

scummvm: common/str.cpp:443: void Common::String::deleteChar(uint32): Assertion 'p < _size' failed.

gdb's thread apply all bt full:

Starting program: /usr/games/scummvm 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Downloading separate debug info for /lib/x86_64-linux-gnu/libpcre.so.3...
[New Thread 0x7ffff2693640 (LWP 665979)]
[New Thread 0x7ffff0a96640 (LWP 665980)]
[Thread 0x7ffff0a96640 (LWP 665980) exited]
[New Thread 0x7ffff0a96640 (LWP 665981)]
[Thread 0x7ffff0a96640 (LWP 665981) exited]
[Detaching after fork from child process 665982]
[New Thread 0x7ffff1e4a640 (LWP 665983)]
[New Thread 0x7ffff0a96640 (LWP 665984)]
[New Thread 0x7ffff1e09640 (LWP 665985)]
[New Thread 0x7ffff1608640 (LWP 665986)]
[Thread 0x7ffff1608640 (LWP 665986) exited]
[New Thread 0x7ffff1608640 (LWP 665987)]

Thread 7 "SDLTimer" received signal SIGABRT, Aborted.
[Switching to Thread 0x7ffff1e09640 (LWP 665985)]
0x00007ffff69a5e71 in raise () from /lib/x86_64-linux-gnu/libc.so.6

Thread 9 (Thread 0x7ffff1608640 (LWP 665987) "scummvm:gl0"):
#0  0x00007ffff6ea8032 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib/x86_64-linux-gnu/libpthread.so.0
#1  0x00007ffff2a7d88b in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#2  0x00007ffff2a7d357 in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#3  0x00007ffff6ea1eae in start_thread () at /lib/x86_64-linux-gnu/libpthread.so.0
#4  0x00007ffff6a66a5f in clone () at /lib/x86_64-linux-gnu/libc.so.6

Thread 7 (Thread 0x7ffff1e09640 (LWP 665985) "SDLTimer"):
warning: Could not find DWO CU common/str.dwo(0x470f71039d0925df) referenced by CU at offset 0x304f0 [in module /home/naoliv/.cache/debuginfod_client/8b2be3ca996455f6c773a2474bf9a08f05161749/debuginfo]
warning: Could not find DWO CU backends/networking/sdl_net/handlers/resourcehandler.dwo(0xe1ddd5a627a839cd) referenced by CU at offset 0x2dd00 [in module /home/naoliv/.cache/debuginfod_client/8b2be3ca996455f6c773a2474bf9a08f05161749/debuginfo]
warning: Could not find DWO CU backends/networking/sdl_net/localwebserver.dwo(0xd0b2bc33af90557a) referenced by CU at offset 0x2d6b0 [in module /home/naoliv/.cache/debuginfod_client/8b2be3ca996455f6c773a2474bf9a08f05161749/debuginfo]
warning: Could not find DWO CU backends/timer/default/default-timer.dwo(0x8ee3bb10a36462a6) referenced by CU at offset 0x2da3c [in module /home/naoliv/.cache/debuginfod_client/8b2be3ca996455f6c773a2474bf9a08f05161749/debuginfo]
warning: Could not find DWO CU backends/timer/sdl/sdl-timer.dwo(0xf0b0c9e76ccc69f4) referenced by CU at offset 0x2d7e0 [in module /home/naoliv/.cache/debuginfod_client/8b2be3ca996455f6c773a2474bf9a08f05161749/debuginfo]
#0  0x00007ffff69a5e71 in raise () at /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007ffff698f536 in abort () at /lib/x86_64-linux-gnu/libc.so.6
#2  0x00007ffff698f41f in  () at /lib/x86_64-linux-gnu/libc.so.6
#3  0x00007ffff699e7f2 in  () at /lib/x86_64-linux-gnu/libc.so.6
#4  0x00005555577784ce in  () at common/str.cpp:443
#5  0x00005555575cee23 in Networking::ResourceHandler::handle(Networking::Client&) () at backends/networking/sdl_net/handlers/resourcehandler.cpp:57
#6  0x00005555575ad29d in Networking::LocalWebserver::handleClient(unsigned int) () at backends/networking/sdl_net/localwebserver.cpp:242
#7  0x00005555575ad2fd in Networking::LocalWebserver::handle() () at backends/networking/sdl_net/localwebserver.cpp:201
#8  0x00005555575c3ef4 in DefaultTimerManager::handler() () at backends/timer/default/default-timer.cpp:111
#9  0x00005555575bb10b in timer_handler(unsigned int, void*) () at backends/timer/sdl/sdl-timer.cpp:37
#10 0x00007ffff7e9de32 in  () at /lib/x86_64-linux-gnu/libSDL2-2.0.so.0
#11 0x00007ffff7e9d8b1 in  () at /lib/x86_64-linux-gnu/libSDL2-2.0.so.0
#12 0x00007ffff7f2b139 in  () at /lib/x86_64-linux-gnu/libSDL2-2.0.so.0
#13 0x00007ffff6ea1eae in start_thread () at /lib/x86_64-linux-gnu/libpthread.so.0
#14 0x00007ffff6a66a5f in clone () at /lib/x86_64-linux-gnu/libc.so.6

Thread 6 (Thread 0x7ffff0a96640 (LWP 665984) "SDLAudioP1"):
#0  0x00007ffff6a5bf26 in ppoll () at /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007ffff69325b1 in pa_mainloop_poll () at /lib/x86_64-linux-gnu/libpulse.so.0
#2  0x00007ffff6932baf in pa_mainloop_iterate () at /lib/x86_64-linux-gnu/libpulse.so.0
#3  0x00007ffff7efc9f7 in  () at /lib/x86_64-linux-gnu/libSDL2-2.0.so.0
#4  0x00007ffff7e38749 in  () at /lib/x86_64-linux-gnu/libSDL2-2.0.so.0
#5  0x00007ffff7e9d8b1 in  () at /lib/x86_64-linux-gnu/libSDL2-2.0.so.0
#6  0x00007ffff7f2b139 in  () at /lib/x86_64-linux-gnu/libSDL2-2.0.so.0
#7  0x00007ffff6ea1eae in start_thread () at /lib/x86_64-linux-gnu/libpthread.so.0
#8  0x00007ffff6a66a5f in clone () at /lib/x86_64-linux-gnu/libc.so.6

Thread 5 (Thread 0x7ffff1e4a640 (LWP 665983) "PulseHotplug"):
#0  0x00007ffff6a5bf26 in ppoll () at /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007ffff69325b1 in pa_mainloop_poll () at /lib/x86_64-linux-gnu/libpulse.so.0
#2  0x00007ffff6932baf in pa_mainloop_iterate () at /lib/x86_64-linux-gnu/libpulse.so.0
#3  0x00007ffff6932c60 in pa_mainloop_run () at /lib/x86_64-linux-gnu/libpulse.so.0
#4  0x00007ffff7efcd5f in  () at /lib/x86_64-linux-gnu/libSDL2-2.0.so.0
#5  0x00007ffff7e9d8b1 in  () at /lib/x86_64-linux-gnu/libSDL2-2.0.so.0
#6  0x00007ffff7f2b139 in  () at /lib/x86_64-linux-gnu/libSDL2-2.0.so.0
#7  0x00007ffff6ea1eae in start_thread () at /lib/x86_64-linux-gnu/libpthread.so.0
#8  0x00007ffff6a66a5f in clone () at /lib/x86_64-linux-gnu/libc.so.6

Thread 2 (Thread 0x7ffff2693640 (LWP 665979) "scummvm:disk$0"):
#0  0x00007ffff6ea8032 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib/x86_64-linux-gnu/libpthread.so.0
#1  0x00007ffff2a7d88b in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#2  0x00007ffff2a7d357 in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#3  0x00007ffff6ea1eae in start_thread () at /lib/x86_64-linux-gnu/libpthread.so.0
#4  0x00007ffff6a66a5f in clone () at /lib/x86_64-linux-gnu/libc.so.6

Thread 1 (Thread 0x7ffff3fcecc0 (LWP 665973) "scummvm"):
warning: Could not find DWO CU gui/options.dwo(0x978855553cb8ab3e) referenced by CU at offset 0x2c778 [in module /home/naoliv/.cache/debuginfod_client/8b2be3ca996455f6c773a2474bf9a08f05161749/debuginfo]
warning: Could not find DWO CU gui/gui-manager.dwo(0x7d4032473bf15907) referenced by CU at offset 0x2c67e [in module /home/naoliv/.cache/debuginfod_client/8b2be3ca996455f6c773a2474bf9a08f05161749/debuginfo]
warning: Could not find DWO CU gui/dialog.dwo(0x8fd48deba8b6b27c) referenced by CU at offset 0x2c5e8 [in module /home/naoliv/.cache/debuginfod_client/8b2be3ca996455f6c773a2474bf9a08f05161749/debuginfo]
warning: Could not find DWO CU gui/launcher.dwo(0x66e157f80bbcc3e1) referenced by CU at offset 0x2c6b0 [in module /home/naoliv/.cache/debuginfod_client/8b2be3ca996455f6c773a2474bf9a08f05161749/debuginfo]
warning: Could not find DWO CU gui/widget.dwo(0x9f62cc7088289b3) referenced by CU at offset 0x2c99e [in module /home/naoliv/.cache/debuginfod_client/8b2be3ca996455f6c773a2474bf9a08f05161749/debuginfo]
#0  0x00007ffff6eab5cb in __lll_lock_wait () at /lib/x86_64-linux-gnu/libpthread.so.0
warning: Could not find DWO CU base/main.dwo(0xa19ca3fed34104db) referenced by CU at offset 0xcc [in module /home/naoliv/.cache/debuginfod_client/8b2be3ca996455f6c773a2474bf9a08f05161749/debuginfo]
#1  0x00007ffff6ea4211 in pthread_mutex_lock () at /lib/x86_64-linux-gnu/libpthread.so.0
#2  0x00007ffff7f2b8be in  () at /lib/x86_64-linux-gnu/libSDL2-2.0.so.0
warning: Could not find DWO CU backends/platform/sdl/posix/posix-main.dwo(0x9730b9cf397cc4a1) referenced by CU at offset 0x68 [in module /home/naoliv/.cache/debuginfod_client/8b2be3ca996455f6c773a2474bf9a08f05161749/debuginfo]
#3  0x00005555575ac156 in Networking::LocalWebserver::isRunning() () at backends/networking/sdl_net/localwebserver.cpp:177
#4  0x000055555751aa6d in GUI::GlobalOptionsDialog::handleTickle() () at gui/options.cpp:2710
#5  0x00005555574fa8e1 in GUI::GuiManager::runLoop() () at gui/gui-manager.cpp:363
#6  0x00005555574f69ee in GUI::Dialog::runModal() () at gui/dialog.cpp:77
#7  0x0000555557500550 in GUI::LauncherDialog::handleCommand(GUI::CommandSender*, unsigned int, unsigned int) () at gui/launcher.cpp:647
#8  0x0000555557549fb5 in GUI::ButtonWidget::handleMouseUp(int, int, int, int) () at ./gui/object.h:55
#9  0x00005555574f609e in GUI::Dialog::handleMouseUp(int, int, int, int) () at gui/dialog.cpp:228
#10 0x00005555574fa9af in GUI::GuiManager::runLoop() () at gui/gui-manager.cpp:584
#11 0x00005555574f69ee in GUI::Dialog::runModal() () at gui/dialog.cpp:77
#12 0x0000555555a75ea8 in launcherDialog() [clone .isra.0] () at base/main.cpp:106
#13 0x0000555555a78a61 in scummvm_main () at base/main.cpp:522
#14 0x0000555555a6f884 in main () at backends/platform/sdl/posix/posix-main.cpp:45

It was scanned with nmap -p 1-65535 -T4 -O -A -v 127.0.0.1

ScummVM version is 2.2.0 (Jan 15 2021 17:10:38)

Change History (1)

comment:1 by sluicebox, 3 years ago

Component: --Unset--Cloud
Owner: set to sluicebox
Resolution: fixed
Status: newclosed

Thank you for the detailed report.

Fixed in https://github.com/scummvm/scummvm/commit/f3b04519a68ee32a48666f04ceb71f23e179e004

I ran the same scan and it now completes without crashes.

Note: See TracTickets for help on using tickets.