diff --git a/pressure-vessel/wrap.c b/pressure-vessel/wrap.c index c78e454b2e380ef32aa8865a8eb1335747664a03..c107efb3c14585429a2eeff5627901331b555fcc 100644 --- a/pressure-vessel/wrap.c +++ b/pressure-vessel/wrap.c @@ -1868,8 +1868,6 @@ main (int argc, if (adjusted_ld_preload->len != 0) flatpak_bwrap_set_env (bwrap, "LD_PRELOAD", adjusted_ld_preload->str, TRUE); - else - g_hash_table_add (extra_locked_vars_to_unset, g_strdup ("LD_PRELOAD")); g_debug ("Making Steam environment variables available if required..."); for (i = 0; i < G_N_ELEMENTS (known_required_env); i++) @@ -1995,6 +1993,11 @@ main (int argc, g_assert (equals != NULL); + /* Never lock LD_PRELOAD, otherwise, for example, we might miss the + * overlay renderer library that the Steam client adds to LD_PRELOAD */ + if (g_str_has_prefix (bwrap->envp[i], "LD_PRELOAD=")) + continue; + *equals = '\0'; g_string_append (lock_env, bwrap->envp[i]);