SDL: dbus: guard against uninitialized D-Bus

From 379d4780559690a9836444aeb5637f60953947be Mon Sep 17 00:00:00 2001
From: Ludovico de Nittis <[EMAIL REDACTED]>
Date: Wed, 28 Sep 2022 10:25:24 +0200
Subject: [PATCH] dbus: guard against uninitialized D-Bus

Before calling any D-Bus related methods we should first ensure that
they
were correctly loaded.

In the event where `LoadDBUSLibrary()` was not able to load the D-Bus
library, we should just return early, signalling with SDL_FALSE that we
were unable to inhibit the Screensaver.

Helps: https://github.com/ValveSoftware/steam-for-linux/issues/8815

Signed-off-by: Ludovico de Nittis <ludovico.denittis@collabora.com>
---
 src/core/linux/SDL_dbus.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/core/linux/SDL_dbus.c b/src/core/linux/SDL_dbus.c
index 3ab362dc1d13..9153e5052e7c 100644
--- a/src/core/linux/SDL_dbus.c
+++ b/src/core/linux/SDL_dbus.c
@@ -419,6 +419,12 @@ SDL_DBus_ScreensaverInhibit(SDL_bool inhibit)
         return SDL_TRUE;
     }
 
+    if (!dbus.session_conn) {
+        /* We either lost connection to the session bus or were not able to
+         * load the D-Bus library at all. */
+        return SDL_FALSE;
+    }
+
     if (SDL_DetectSandbox() != SDL_SANDBOX_NONE) {
         const char *bus_name = "org.freedesktop.portal.Desktop";
         const char *path = "/org/freedesktop/portal/desktop";