From 34159399cffcc2dd15ab266d132ea4e4c7e96d0c Mon Sep 17 00:00:00 2001 From: sleeptightAnsiC <91839286+sleeptightAnsiC@users.noreply.github.com> Date: Sun, 2 Mar 2025 17:05:09 +0100 Subject: [PATCH] [rcore] fix crash in InitWindow, due to unchecked result of InitPlatform (#4803) * [rcore] fix crash in InitWindow, due to unchecked result of InitPlatform Check the result of InitPlatform(), if it isn't 0, report the Error and return. This prevent crashes and allows for gracefully aborting or recovering by checking IsWindowReady(). Partially-fixes: https://github.com/raysan5/raylib/issues/4801 * [rcore] style: store the result of InitPlatform() before checking it Small style change that doesn't impact how the code behaves here. Variable 'result' is not used anywhere else in this block, it's just for compliance with Raylib's coding conventions. Requested in PR: https://github.com/raysan5/raylib/pull/4803#discussion_r1976502788 * [rcore] use LOG_WARNING when InitPlatform() fails ...as this is preferred over LOG_ERROR. Requested-by: https://github.com/raysan5/raylib/pull/4803#discussion_r1976651724 --- src/rcore.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/rcore.c b/src/rcore.c index 99aca0059..cc4d4988d 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -681,7 +681,13 @@ void InitWindow(int width, int height, const char *title) // Initialize platform //-------------------------------------------------------------- - InitPlatform(); + int result = InitPlatform(); + + if (result != 0) + { + TRACELOG(LOG_WARNING, "SYSTEM: Failed to initialize Platform"); + return; + } //-------------------------------------------------------------- // Initialize rlgl default data (buffers and shaders)