Browse Source

dbus: fix spurious leak reports with SDL_SHUTDOWN_DBUS_ON_QUIT=0

Cameron Gutman 6 months ago
parent
commit
c4c185283f
1 changed files with 7 additions and 1 deletions
  1. 7 1
      src/core/linux/SDL_dbus.c

+ 7 - 1
src/core/linux/SDL_dbus.c

@@ -189,10 +189,16 @@ void SDL_DBus_Quit(void)
         if (dbus.shutdown) {
             dbus.shutdown();
         }
+
+        UnloadDBUSLibrary();
+    } else {
+        /* Leaving libdbus loaded when skipping dbus_shutdown() avoids
+         * spurious leak warnings from LeakSanitizer on internal D-Bus
+         * allocations that would be freed by dbus_shutdown(). */
+        dbus_handle = NULL;
     }
 
     SDL_zero(dbus);
-    UnloadDBUSLibrary();
     if (inhibit_handle) {
         SDL_free(inhibit_handle);
         inhibit_handle = NULL;