Opened 7 days ago

#15179 new defect

AGS: lzwexpand SIGBUS on strict-alignment archs

Reported by: dwatteau Owned by:
Priority: normal Component: Engine: AGS
Version: Keywords: strict-alignment, sigbus
Cc: Game:

Description

Testing the current Git HEAD on a mips64el device, which is 64 bits, little-endian, and has strict-alignment constraints.

Running Maniac Mansion Deluxe immediately causes the following SIGBUS, on this device:

Program terminated with signal SIGBUS, Bus error.
#0  AGS3::lzwexpand (src=0x341fc30000 "\300\200\002", src_sz=22433, dst=0x3455f3c000 "\200\002", dst_sz=128008)
    at engines/ags/shared/util/lzw.cpp:225
225                                     jshort = BBOp::Int16FromLE(*(reinterpret_cast<const int16_t *>(src_ptr)));

(gdb) bt
#0  AGS3::lzwexpand (src=0x341fc30000 "\300\200\002", src_sz=22433, dst=0x3455f3c000 "\200\002", dst_sz=128008)
    at engines/ags/shared/util/lzw.cpp:225
#1  0x0000003470d3c81c in AGS3::load_lzw (in=0x341dafb500, dst_bpp=<optimized out>, pal=<optimized out>)
    at engines/ags/shared/util/compress.cpp:408
#2  0x0000003470d1d148 in AGS3::AGS::Shared::ReadMainBlock (room=0x3487c14000, in=0x341dafb500, data_ver=<optimized out>)
    at engines/ags/shared/game/room_file.cpp:299

Full GDB backtrace attached below.

I guess that doing a build with UBsan on a regular x86 desktop should help testing this.

Attachments (1)

gdb-ags-lzwexpand-sigbus-backtrace.txt (19.6 KB ) - added by dwatteau 7 days ago.
full GDB backtrace on the MIPS device with strict-alignment constraints

Download all attachments as: .zip

Change History (1)

by dwatteau, 7 days ago

full GDB backtrace on the MIPS device with strict-alignment constraints

Note: See TracTickets for help on using tickets.