DakkJaniels / DevilutionX-MiddleEarthMod

Recreation of V&K's Middle Earth Mod for Diablo 1.07, utilizing Devilution X
The Unlicense
8 stars 3 forks source link

Crash (on Linux?) when opening inventory #23

Open sixcy opened 1 year ago

sixcy commented 1 year ago

Important information Ubuntu 22.04 LTS / master (d112fc94eebbc3cfeaf5f970f58528403b9efa63) / built from source in Debug mode

Describe

SDL initialized with sample format: S16LSB
AddressSanitizer:DEADLYSIGNAL
=================================================================
==27655==ERROR: AddressSanitizer: SEGV on unknown address 0x7f45c96d03f9 (pc 0x556931cfb86f bp 0x7ffc399025a0 sp 0x7ffc39902560 T0)
==27655==The signal is caused by a READ memory access.
    #0 0x556931cfb86f in unsigned short devilution::LoadLE16<std::byte>(std::byte const*) /home/csix/diablo/DevilutionX-MiddleEarthMod/Source/utils/endian.hpp:12:10
    #1 0x556931cfb0d7 in devilution::CelGetFrameClipped(std::byte const*, int, int*) /home/csix/diablo/DevilutionX-MiddleEarthMod/Source/engine/cel_header.hpp:62:30
    #2 0x556931c974ad in devilution::CelClippedDrawTo(devilution::Surface const&, devilution::Point, devilution::CelSprite, int) /home/csix/diablo/DevilutionX-MiddleEarthMod/Source/engine/render/cel_render.cpp:608:26
    #3 0x556931c9c735 in devilution::CelDrawItem(devilution::Item const&, devilution::Surface const&, devilution::Point, devilution::CelSprite, int) /home/csix/diablo/DevilutionX-MiddleEarthMod/Source/engine/render/cel_render.cpp:648:3
    #4 0x5569313a66a6 in devilution::DrawInv(devilution::Surface const&) /home/csix/diablo/DevilutionX-MiddleEarthMod/Source/inv.cpp:1259:4
    #5 0x556931ad7297 in devilution::(anonymous namespace)::DrawView(devilution::Surface const&, devilution::Point) /home/csix/diablo/DevilutionX-MiddleEarthMod/Source/scrollrt.cpp:1274:3
    #6 0x556931ad347f in devilution::DrawAndBlit() /home/csix/diablo/DevilutionX-MiddleEarthMod/Source/scrollrt.cpp:1719:2
    #7 0x5569311b815c in devilution::(anonymous namespace)::RunGameLoop(devilution::interface_mode) /home/csix/diablo/DevilutionX-MiddleEarthMod/Source/diablo.cpp:793:4
    #8 0x5569311b75fa in devilution::StartGame(bool, bool) /home/csix/diablo/DevilutionX-MiddleEarthMod/Source/diablo.cpp:1734:3
    #9 0x55693154e927 in devilution::(anonymous namespace)::InitMenu(devilution::_selhero_selections) /home/csix/diablo/DevilutionX-MiddleEarthMod/Source/menu.cpp:50:12
    #10 0x55693154e7f6 in devilution::(anonymous namespace)::InitMultiPlayerMenu() /home/csix/diablo/DevilutionX-MiddleEarthMod/Source/menu.cpp:66:9
    #11 0x55693154e280 in devilution::mainmenu_loop() /home/csix/diablo/DevilutionX-MiddleEarthMod/Source/menu.cpp:159:9
    #12 0x5569311b85c0 in devilution::DiabloMain(int, char**) /home/csix/diablo/DevilutionX-MiddleEarthMod/Source/diablo.cpp:1796:2
    #13 0x55693232c489 in main /home/csix/diablo/DevilutionX-MiddleEarthMod/Source/main.cpp:46:21
    #14 0x7f450474cd8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16
    #15 0x7f450474ce3f in __libc_start_main csu/../csu/libc-start.c:392:3
    #16 0x556930fc9684 in _start (/home/csix/diablo/DevilutionX-MiddleEarthMod/build/devilutionx+0xb48684) (BuildId: f8ffef22fe69e3da2661a11b329763d64867ce5d)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV /home/csix/diablo/DevilutionX-MiddleEarthMod/Source/utils/endian.hpp:12:10 in unsigned short devilution::LoadLE16<std::byte>(std::byte const*)
==27655==ABORTING

To Reproduce Steps to reproduce the behavior:

  1. Download the save file: multi_0.sv.zip
  2. Unzip it, place it in the save folder
  3. Load the save in multiplayer. Open inventory.

Additional context Could someone try to reproduce on Windows to see if this is an issue specific to Linux?

wkdgit commented 1 year ago

Loaded character on Win 11 machine, latest release for ME, no crash upon using inventory. Looks to be working perfectly fine.