浏览代码

Check DBus loading status before attempting to detect its version

Fixes two related segfaults caused by running the DBus version check
unconditionally and potentially calling null function pointers.

This was clearly an oversight as all the other wrappers have proper
loading status checks.
Riteo 2 年之前
父节点
当前提交
a7542070ae
共有 2 个文件被更改,包括 10 次插入0 次删除
  1. 5 0
      platform/linuxbsd/freedesktop_portal_desktop.cpp
  2. 5 0
      platform/linuxbsd/freedesktop_screensaver.cpp

+ 5 - 0
platform/linuxbsd/freedesktop_portal_desktop.cpp

@@ -138,6 +138,11 @@ FreeDesktopPortalDesktop::FreeDesktopPortalDesktop() {
 #else
 	unsupported = false;
 #endif
+
+	if (unsupported) {
+		return;
+	}
+
 	bool ver_ok = false;
 	int version_major = 0;
 	int version_minor = 0;

+ 5 - 0
platform/linuxbsd/freedesktop_screensaver.cpp

@@ -141,6 +141,11 @@ FreeDesktopScreenSaver::FreeDesktopScreenSaver() {
 #else
 	unsupported = false;
 #endif
+
+	if (unsupported) {
+		return;
+	}
+
 	bool ver_ok = false;
 	int version_major = 0;
 	int version_minor = 0;