From bfb6c1adc7e3f9dd8eaa79dec2e26f2e29fb6b02 Mon Sep 17 00:00:00 2001
From: Simon McVittie <smcv@collabora.com>
Date: Thu, 9 Jan 2020 12:54:42 +0000
Subject: [PATCH] Consistently call _srt_check_not_setuid() before looking at
 the environment

Signed-off-by: Simon McVittie <smcv@collabora.com>
---
 steam-runtime-tools/graphics.c    | 1 +
 steam-runtime-tools/system-info.c | 4 ++++
 steam-runtime-tools/utils.c       | 1 +
 3 files changed, 6 insertions(+)

diff --git a/steam-runtime-tools/graphics.c b/steam-runtime-tools/graphics.c
index 7231e887c..20ff7481c 100644
--- a/steam-runtime-tools/graphics.c
+++ b/steam-runtime-tools/graphics.c
@@ -2593,6 +2593,7 @@ _srt_get_modules_full (gchar **envp,
 
   g_return_if_fail (multiarch_tuple != NULL);
   g_return_if_fail (drivers_out != NULL);
+  g_return_if_fail (_srt_check_not_setuid ());
 
   switch (module)
     {
diff --git a/steam-runtime-tools/system-info.c b/steam-runtime-tools/system-info.c
index b407579f0..c61f71b6e 100644
--- a/steam-runtime-tools/system-info.c
+++ b/steam-runtime-tools/system-info.c
@@ -762,6 +762,8 @@ ensure_overrides_cached (SrtSystemInfo *self)
   int exit_status = -1;
   GError *error = NULL;
 
+  g_return_if_fail (_srt_check_not_setuid ());
+
   if (!self->overrides.have_data)
     {
       if (self->env != NULL)
@@ -866,6 +868,8 @@ ensure_pinned_libs_cached (SrtSystemInfo *self)
   int exit_status = -1;
   GError *error = NULL;
 
+  g_return_if_fail (_srt_check_not_setuid ());
+
   if (!self->pinned_libs.have_data)
     {
       runtime = srt_system_info_dup_runtime_path (self);
diff --git a/steam-runtime-tools/utils.c b/steam-runtime-tools/utils.c
index b8c05166e..0ea2c03b8 100644
--- a/steam-runtime-tools/utils.c
+++ b/steam-runtime-tools/utils.c
@@ -296,6 +296,7 @@ _srt_get_helper (const char *helpers_path,
   gchar *path;
   gchar *prefixed;
 
+  g_return_val_if_fail (_srt_check_not_setuid (), NULL);
   g_return_val_if_fail (base != NULL, NULL);
   g_return_val_if_fail (error == NULL || *error == NULL, NULL);
 
-- 
GitLab