[Fixed] [574e079] Crash on particular DECORATE parse error

Bugs that have been investigated and resolved somehow.

Moderator: GZDoom Developers

[574e079] Crash on particular DECORATE parse error

Postby vsonnier » Sun Aug 25, 2019 2:12 am


In the current master and apparently commits after 38fec54, Brutal Doom v21 and probably every variant under the sun crashes on null-pointer exception. Executing in RelWithDebInfo x64 (VS 2019) with (Optimization; Inline Function Expansion) disabled, I get the following stack trace at GZDoom startup:
Code: Select allExpand view
   gzdoom.exe!FName::GetChars() Line 61   C++
    gzdoom.exe!FScriptPosition::Message(int severity, const char * message, ...) Line 1258   C++
    gzdoom.exe!ParseHex(const char * hex, FScriptPosition * sc) Line 1287   C++
    gzdoom.exe!V_GetColorFromString(const unsigned int * palette, const char * cstr, FScriptPosition * sc) Line 352   C++
    gzdoom.exe!V_GetColor(const unsigned int * palette, const char * str, FScriptPosition * sc) Line 474   C++
    gzdoom.exe!Handler_bloodcolor_C_Actor(AActor * defaults, PClassActor * info, Baggage & bag, FPropParam * params) Line 778   C++
    gzdoom.exe!ParsePropertyParams(FScanner & sc, FPropertyInfo * prop, AActor * defaults, Baggage & bag) Line 820   C++
    gzdoom.exe!ParseActorProperty(FScanner & sc, Baggage & bag) Line 957   C++
    gzdoom.exe!ParseActor(FScanner & sc, PNamespace * ns) Line 1172   C++
    gzdoom.exe!ParseDecorate(FScanner & sc, PNamespace * ns) Line 1310   C++
    gzdoom.exe!ParseDecorate(FScanner & sc, PNamespace * ns) Line 1284   C++
    gzdoom.exe!ParseAllDecorate() Line 1348   C++
    gzdoom.exe!LoadActors() Line 467   C++
    gzdoom.exe!PClassActor::StaticInit() Line 394   C++
    gzdoom.exe!D_DoomMain() Line 2508   C++
    gzdoom.exe!DoMain(HINSTANCE__ * hInstance) Line 992   C++
    gzdoom.exe!wWinMain(HINSTANCE__ * hInstance, HINSTANCE__ * nothing, wchar_t * cmdline, int nCmdShow) Line 1324   C++
    [External Code]   

The problem seems to be the parsing of the following DECORATE code (minimal example):
Code: Select allExpand view
ACTOR TehLostSoul: LostSoul Replaces LostSoul
    bloodcolor none

"bloodcolor none" is probably invalid, but before the execution would continue.
Minimal reproducing example
(379 Bytes) Downloaded 9 times
Joined: 11 Apr 2019
Github ID: vsonnier
Operating System: Windows 10/8.1/8 64-bit
Graphics Processor: nVidia with Vulkan support

Re: [574e079] Crash on particular DECORATE parse error

Postby _mental_ » Sun Aug 25, 2019 2:22 am

Fixed in cc1f18a.
Joined: 07 Aug 2011

Return to Closed Bugs

Who is online

Users browsing this forum: No registered users and 0 guests