From 1bd3f3827eaae55f2f5718c7a1fab3908d56be60 Mon Sep 17 00:00:00 2001
From: Simon McVittie <smcv@collabora.com>
Date: Tue, 8 Dec 2020 21:00:07 +0000
Subject: [PATCH] pressure-vessel: Always disable gtk3-nocsd

This module interposes in front of g_object_get(), and is known to cause
crashes, even in programs that use GObject but not GTK, such as either
pressure-vessel-launch or pressure-vessel-launcher (it's unclear which).

Resolves: https://github.com/ValveSoftware/steam-runtime/issues/286
Signed-off-by: Simon McVittie <smcv@collabora.com>
---
 pressure-vessel/wrap.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/pressure-vessel/wrap.c b/pressure-vessel/wrap.c
index 1c727efc6..5bfa3a7b3 100644
--- a/pressure-vessel/wrap.c
+++ b/pressure-vessel/wrap.c
@@ -28,6 +28,7 @@
 
 #include <locale.h>
 #include <stdlib.h>
+#include <string.h>
 
 #include "steam-runtime-tools/glib-backports-internal.h"
 #include "steam-runtime-tools/utils-internal.h"
@@ -1898,6 +1899,12 @@ main (int argc,
           g_assert (g_str_has_prefix (preload, "host:"));
           preload = preload + 5;
 
+          if (strstr (preload, "gtk3-nocsd") != NULL)
+            {
+              g_warning ("Disabling gtk3-nocsd LD_PRELOAD: it is known to cause crashes.");
+              continue;
+            }
+
           if (g_file_test (preload, G_FILE_TEST_EXISTS))
             {
               if (opt_remove_game_overlay
-- 
GitLab