Opened 8 months ago
Closed 8 months ago
#15035 closed defect (fixed)
AGS: No-Action Jackson - Segmentation fault upon player being given control
Reported by: | dfsgand | Owned by: | tag2015 |
---|---|---|---|
Priority: | normal | Component: | Engine: AGS |
Version: | Keywords: | crash AGS No-Action Jackson | |
Cc: | dfsgand | Game: |
Description
ScummVM version: 2.9.0git2666-gc783efb7742
Features compiled in: Vorbis FLAC MP3 ALSA SEQ sndio TiMidity RGB zLib MikMod VPX A/52 FreeType2 FriBiDi JPEG PNG ENet SDL2 TinyGL OpenGL (with shaders)
Platform: Debian 11.9 bullseye, x86-64
Game: No-Action Jackson (English)
Download URL: https://archive.org/download/No-Action_Jackson/noaction.zip
ScummVM recognizes the game, but starting it leads to a segmentation fault as soon as the intro sequence finishes and the player is given control. It's possible to move the cursor around the verbs on the bottom of the screen, but moving to the main scene immediately crashes ScummVM.
gdb and valgrind traces suggest that the crash happens due to an out of bounds memory access in Common::Hashmap<AGS3:...>, ./common/hashmap.h:501. From what I can tell, the _mask value seems wrong.
Attachments (3)
Change History (6)
by , 8 months ago
Attachment: | backtrace.txt added |
---|
comment:1 by , 8 months ago
I did some more digging and it seems that the problem is due to GetHotspotProperty being called with hss=-1. In turn that appears to be due to AGS3::Sc_GetHotspotProperty being called with params->IValue=-1.
Patching GetHotspotProperty (engines/ags/engine/ac/global_hotspot.cpp) to return -1 if hss < 0 fixes the problem, but I don't know if that's just covering up a bug elsewhere.
comment:2 by , 8 months ago
Thanks for the report, the issue was fixed upstream https://github.com/adventuregamestudio/ags/issues/2366
I'll soon commit the fix to scummvm too
comment:3 by , 8 months ago
Owner: | set to |
---|---|
Resolution: | → fixed |
Status: | new → closed |
fixed in commit 6c8e783
gdb backtrace