kraflab/dsda-doom

Warping to E5M9 of SIGIL.wad crashes with a segmentation fault.

Closed this issue · 7 comments

Warping to E5M9 of SIGIL.wad crashes with a segmentation fault.
Previously I was using an older version of dsda-doom, v0.25.6 which does not have this issue.
I'm using the software render but also tested with OpenGL with no difference.

Here's a the output when run from lldb, with some possibly pertinent variables:

$ lldb-15 dsda-doom
(lldb) target create "dsda-doom"
Current executable set to '/usr/local/bin/dsda-doom' (x86_64).
(lldb) run -iwad doom.wad -file SIGIL.wad
Process 49153 launched: '/usr/local/bin/dsda-doom' (x86_64)
dsda-doom v0.27.5 (https://github.com/kraflab/dsda-doom/)
dsda-doom is released under the GNU General Public license v2.0.
You are welcome to redistribute it under certain conditions.
It comes with ABSOLUTELY NO WARRANTY. See the file COPYING for details.

Playing: The Ultimate DOOM
 adding doom.wad
 adding /usr/local/share/games/doom/dsda-doom.wad
 adding SIGIL.wad
Using data file directory: /home/petern/.dsda-doom/dsda_doom_data/doom/sigil

Process 49153 stopped
* thread #1, name = 'dsda-doom', stop reason = signal SIGSEGV: invalid address (fault address: 0x555557044e1d)
    frame #0: 0x000055555565e1ad dsda-doom`R_PrecacheLevel at r_data.c:578:25
   575 	  }
   576 	  else
   577 	  {
-> 578 	    hitlist[skytexture] = 1;
   579 	  }
   580 	
   581 	  for (i = numtextures; --i >= 0; )
(lldb) print hitlist
(byte *) $0 = 0x000055555703f8c8 "\U00000001"
(lldb) print skytexture
(int) $1 = 21845
(lldb) print numtextures
(int) $5 = 289
(lldb) quit

Thanks!

Other levels crash too, it's just that the sky is visible from spawn on E5M9 which makes this easier to reproduce.

Are you playing with the compatible version of sigil?

We would want to match the behavior of other compatible ports here if they do not crash, e.g. you could check what Woof does.

Hi, you are correct, I was not using the compat version of Sigil.

On the other hand, I've just built and ran with woof. This does not segfault, it uses the SKY1 texture.

Updated my fix with a simpler commit which just adds a default case to go with gameepisode 1.

Yes, just adding a default case to match woof would be fine 👍

0b59bf8 thanks!