Skip to content

Fix crash in Com_Error when com_noErrorInterrupt is nullptr#8

Open
Pomidor1638 wants to merge 1 commit intoid-Software:masterfrom
Pomidor1638:fix-com-error-nullptr
Open

Fix crash in Com_Error when com_noErrorInterrupt is nullptr#8
Pomidor1638 wants to merge 1 commit intoid-Software:masterfrom
Pomidor1638:fix-com-error-nullptr

Conversation

@Pomidor1638
Copy link
Copy Markdown

Problem:
A crash occurs in Win32 Debug builds when Com_Error is called before the com_noErrorInterrupt cvar is initialized. This can happen during early initialization errors, such as running the game without the required .pak files, causing the pointer to be nullptr and leading to a segmentation fault when accessed.

Solution:
Added a simple null check (com_noErrorInterrupt != NULL) before dereferencing the pointer in the debug-specific code block. This change preserves the original debug logic (the intentional breakpoint) while preventing a hard crash when the cvar is not yet available.

Important:
This fix only affects Win32 Debug builds (guarded by #if defined(_WIN32) && defined(_DEBUG)) and has zero impact on release builds or other platforms. The debug functionality remains fully intact when the cvar is properly initialized.

Root Cause:
The Com_Error function can be called during initial filesystem initialization (e.g., when no game data is found). Since com_noErrorInterrupt is initialized later as a cvar, its pointer is null at this early stage, causing a crash when the debug code attempts to check its value.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant