Package: gltron Version: 0.70final-12.4 Severity: normal Tags: upstream To reproduce:
* run gltron * use your desktop environment or window manager's keyboard shortcut for closing the window, normally Alt+F4 Expected result: the game quits gracefully. Actual result (with libsdl1.2debian): the game crashes with a segmentation fault. Actual result (with libsdl1.2-compat-shim, or with libsdl1.2-compat 1.2.58-1 added to the LD_LIBRARY_PATH): the game hangs indefinitely, becomes unresponsive to SIGINT and SIGTERM, and must be killed with SIGKILL or similar. I reported this to sdl12-compat upstream while testing various Debian games' compatibility with sdl12-compat, and sdl12-compat maintainer Ryan C. Gordon diagnosed the problem as follows: > This happens in glTron because it gets the SDL_QUIT event [...] > which calls [SDL_Quit()] but never sets return_code to exit the loop. It > should probably just do that and not call SystemExit, as I assume leaving > this loop will do that too without risking another call into SDL. > > In real 1.2, it eventually calls SDL_GL_SwapBuffers after that SDL_Quit > and dereferences a NULL pointer; in sdl12-compat, we just keep ending > up back in current->idle() calling SDL_Delay() without crashing. (See https://github.com/libsdl-org/sdl12-compat/issues/237) -- System Information: Debian Release: bookworm/sid APT prefers testing APT policy: (500, 'testing'), (100, 'unstable'), (90, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 5.19.0-2-amd64 (SMP w/8 CPU threads; PREEMPT) Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), LANGUAGE=en_GB:en Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages gltron depends on: ii libc6 2.35-3 ii libgcc-s1 12.2.0-3 ii libgl1 1.5.0-1 ii libpng16-16 1.6.38-2 ii libsdl-sound1.2 1.0.3-9+b1 ii libsdl1.2debian 1.2.15+dfsg2-8 ii libstdc++6 12.2.0-3 ii zlib1g 1:1.2.11.dfsg-4.1 gltron recommends no packages. gltron suggests no packages. -- no debconf information