summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Ancell <robert.ancell@canonical.com>2016-12-07 16:27:18 +1300
committerRobert Ancell <robert.ancell@canonical.com>2016-12-07 16:27:18 +1300
commita258db1a01b385d96a58fe1cb5015a9532726a55 (patch)
treec18663ddf0f783d7367164f6b1226175d214f068
parentddde20e73206f3b384d8bb3531517ed7208ef34d (diff)
downloadlightdm-git-a258db1a01b385d96a58fe1cb5015a9532726a55.tar.gz
Always pass through LD_PRELOAD, LD_LIBRARY_PATH and PATH to sessions/display servers
-rw-r--r--src/seat.c22
-rw-r--r--src/x-server-local.c12
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);