From a258db1a01b385d96a58fe1cb5015a9532726a55 Mon Sep 17 00:00:00 2001 From: Robert Ancell Date: Wed, 7 Dec 2016 16:27:18 +1300 Subject: Always pass through LD_PRELOAD, LD_LIBRARY_PATH and PATH to sessions/display servers --- src/seat.c | 22 +++++++--------------- src/x-server-local.c | 12 ++++++------ 2 files changed, 13 insertions(+), 21 deletions(-) diff --git a/src/seat.c b/src/seat.c index 9cb7ec9b..db1ff537 100644 --- a/src/seat.c +++ b/src/seat.c @@ -365,16 +365,13 @@ run_script (Seat *seat, DisplayServer *display_server, const gchar *script_name, process_set_clear_environment (script, TRUE); process_set_env (script, "SHELL", "/bin/sh"); + process_set_env (script, "LD_PRELOAD", g_getenv ("LD_PRELOAD")); + process_set_env (script, "LD_LIBRARY_PATH", g_getenv ("LD_LIBRARY_PATH")); + process_set_env (script, "PATH", g_getenv ("PATH")); + /* Variables required for regression tests */ if (g_getenv ("LIGHTDM_TEST_ROOT")) - { process_set_env (script, "LIGHTDM_TEST_ROOT", g_getenv ("LIGHTDM_TEST_ROOT")); - process_set_env (script, "LD_PRELOAD", g_getenv ("LD_PRELOAD")); - process_set_env (script, "LD_LIBRARY_PATH", g_getenv ("LD_LIBRARY_PATH")); - process_set_env (script, "PATH", g_getenv ("PATH")); - } - else - process_set_env (script, "PATH", "/usr/local/bin:/usr/bin:/bin"); if (user) { @@ -887,12 +884,6 @@ set_session_env (Session *session) if (g_getenv ("DBUS_SESSION_BUS_ADDRESS")) session_set_env (session, "DBUS_SESSION_BUS_ADDRESS", g_getenv ("DBUS_SESSION_BUS_ADDRESS")); session_set_env (session, "LDM_BUS", "SESSION"); - if (g_getenv ("LD_PRELOAD")) - session_set_env (session, "LD_PRELOAD", g_getenv ("LD_PRELOAD")); - if (g_getenv ("LD_LIBRARY_PATH")) - session_set_env (session, "LD_LIBRARY_PATH", g_getenv ("LD_LIBRARY_PATH")); - if (g_getenv ("PATH")) - session_set_env (session, "PATH", g_getenv ("PATH")); } /* Variables required for regression tests */ @@ -901,10 +892,11 @@ set_session_env (Session *session) session_set_env (session, "LIGHTDM_TEST_ROOT", g_getenv ("LIGHTDM_TEST_ROOT")); session_set_env (session, "DBUS_SYSTEM_BUS_ADDRESS", g_getenv ("DBUS_SYSTEM_BUS_ADDRESS")); session_set_env (session, "DBUS_SESSION_BUS_ADDRESS", g_getenv ("DBUS_SESSION_BUS_ADDRESS")); - session_set_env (session, "LD_PRELOAD", g_getenv ("LD_PRELOAD")); - session_set_env (session, "LD_LIBRARY_PATH", g_getenv ("LD_LIBRARY_PATH")); session_set_env (session, "GI_TYPELIB_PATH", g_getenv ("GI_TYPELIB_PATH")); } + + session_set_env (session, "LD_PRELOAD", g_getenv ("LD_PRELOAD")); + session_set_env (session, "LD_LIBRARY_PATH", g_getenv ("LD_LIBRARY_PATH")); } static Session * diff --git a/src/x-server-local.c b/src/x-server-local.c index f2518237..58a02b60 100644 --- a/src/x-server-local.c +++ b/src/x-server-local.c @@ -549,13 +549,13 @@ x_server_local_start (DisplayServer *display_server) } } + /* Pass through library variables */ + process_set_env (server->priv->x_server_process, "LD_PRELOAD", g_getenv ("LD_PRELOAD")); + process_set_env (server->priv->x_server_process, "LD_LIBRARY_PATH", g_getenv ("LD_LIBRARY_PATH")); + process_set_env (server->priv->x_server_process, "PATH", g_getenv ("PATH")); + /* Variable required for regression tests */ - if (g_getenv ("LIGHTDM_TEST_ROOT")) - { - process_set_env (server->priv->x_server_process, "LIGHTDM_TEST_ROOT", g_getenv ("LIGHTDM_TEST_ROOT")); - process_set_env (server->priv->x_server_process, "LD_PRELOAD", g_getenv ("LD_PRELOAD")); - process_set_env (server->priv->x_server_process, "LD_LIBRARY_PATH", g_getenv ("LD_LIBRARY_PATH")); - } + process_set_env (server->priv->x_server_process, "LIGHTDM_TEST_ROOT", g_getenv ("LIGHTDM_TEST_ROOT")); result = process_start (server->priv->x_server_process, FALSE); -- cgit v1.2.1