It's
here. This can happen only if
_get_pgmptr() function returns zero but for some reason assigns
nullptr to its argument.
Code: Select all
#ifdef _MSC_VER
if (_get_pgmptr(&program) != 0)
{
I_FatalError("Could not determine program location.");
}
#else
// ...
#endif
progdir = program;
program = progdir.LockBuffer();
*(strrchr(program, '\\') + 1) = '\0'; // <------
//...
EDIT: The crash is caused by a new Windows SDK, 10.0.17134.0 in my case.
_get_pgmptr() assigns an empty string to its argument. Looks like Microsoft cannot release anything that won't break existing software. It's a new trend in software industry and everyone wants to be a part of it...