From a82e0dec2f942b143977880654dd783f53c25c33 Mon Sep 17 00:00:00 2001 From: akallabeth Date: Tue, 25 Mar 2025 16:47:05 +0100 Subject: [PATCH] [client,sdl] fix crash on suppress output SDL events might be triggered before the RDP session is up. Check the context for NULL. --- client/SDL/SDL3/sdl_disp.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/client/SDL/SDL3/sdl_disp.cpp b/client/SDL/SDL3/sdl_disp.cpp index 8298c3757..9c32dc1a3 100644 --- a/client/SDL/SDL3/sdl_disp.cpp +++ b/client/SDL/SDL3/sdl_disp.cpp @@ -344,16 +344,22 @@ BOOL sdlDispContext::handle_window_event(const SDL_WindowEvent* ev) { case SDL_EVENT_WINDOW_HIDDEN: case SDL_EVENT_WINDOW_MINIMIZED: - gdi_send_suppress_output(_sdl->context()->gdi, TRUE); - + { + auto ctx = _sdl->context(); + if (ctx && ctx->gdi) + gdi_send_suppress_output(ctx->gdi, TRUE); return TRUE; - + } case SDL_EVENT_WINDOW_EXPOSED: case SDL_EVENT_WINDOW_SHOWN: case SDL_EVENT_WINDOW_MAXIMIZED: case SDL_EVENT_WINDOW_RESTORED: - gdi_send_suppress_output(_sdl->context()->gdi, FALSE); + { + auto ctx = _sdl->context(); + if (ctx && ctx->gdi) + gdi_send_suppress_output(ctx->gdi, FALSE); return TRUE; + } case SDL_EVENT_WINDOW_DISPLAY_SCALE_CHANGED: case SDL_EVENT_WINDOW_PIXEL_SIZE_CHANGED: {