Commit c9bebed0 authored by Ray Strode's avatar Ray Strode

Revert "worker: get PATH from parent instead of #define"

This reverts commit e546e4dc.

It's causing problems because bindir and sbindir are in the wrong
order for a user session.
parent 76d26d8c
......@@ -20,6 +20,7 @@ AM_CPPFLAGS = \
-DGDM_DEFAULTS_CONF=\"$(GDM_DEFAULTS_CONF)\" \
-DGDM_CUSTOM_CONF=\"$(GDM_CUSTOM_CONF)\" \
-DGDM_OLD_CONF=\"$(GDM_OLD_CONF)\" \
-DGDM_SESSION_DEFAULT_PATH=\"$(GDM_SESSION_DEFAULT_PATH)\" \
$(COMMON_CFLAGS) \
$(NULL)
......
......@@ -909,7 +909,7 @@ gdm_get_script_environment (const char *username,
/* Runs as root */
g_hash_table_insert (hash, g_strdup ("XAUTHORITY"), g_strdup (display_x11_authority_file));
g_hash_table_insert (hash, g_strdup ("DISPLAY"), g_strdup (display_name));
g_hash_table_insert (hash, g_strdup ("PATH"), g_strdup (g_getenv ("PATH")));
g_hash_table_insert (hash, g_strdup ("PATH"), g_strdup (GDM_SESSION_DEFAULT_PATH));
g_hash_table_insert (hash, g_strdup ("RUNNING_UNDER_GDM"), g_strdup ("true"));
g_hash_table_remove (hash, "MAIL");
......
......@@ -274,6 +274,23 @@ AC_ARG_WITH(at-spi-registryd-directory,
AT_SPI_REGISTRYD_DIR=$with_at_spi_registryd_directory
AC_SUBST(AT_SPI_REGISTRYD_DIR)
# Allow configuration of default PATH
#
withval=""
AC_ARG_WITH(default-path,
AS_HELP_STRING([--with-default-path=<PATH>],
[PATH GDM will use as the user's default PATH]),
[if test x$withval != x; then
AC_MSG_RESULT("PATH ${withval} will be the default PATH.")
fi])
if test x$withval != x; then
GDM_SESSION_DEFAULT_PATH="$withval"
else
GDM_SESSION_DEFAULT_PATH="/usr/local/bin:/usr/bin:/bin"
fi
AC_SUBST(GDM_SESSION_DEFAULT_PATH)
dnl
dnl file that sets LANG
dnl
......
......@@ -19,6 +19,7 @@ AM_CPPFLAGS = \
-DGDM_XAUTH_DIR=\"$(GDM_XAUTH_DIR)\" \
-DGDM_SCREENSHOT_DIR=\"$(GDM_SCREENSHOT_DIR)\" \
-DGDM_CACHE_DIR=\""$(localstatedir)/cache/gdm"\" \
-DGDM_SESSION_DEFAULT_PATH=\"$(GDM_SESSION_DEFAULT_PATH)\" \
-DCONSOLEKIT_DIR=\"$(CONSOLEKIT_DIR)\" \
$(DISABLE_DEPRECATED_CFLAGS) \
$(DAEMON_CFLAGS) \
......
......@@ -90,6 +90,10 @@
#define GDM_PASSWD_AUXILLARY_BUFFER_SIZE 1024
#endif
#ifndef GDM_SESSION_DEFAULT_PATH
#define GDM_SESSION_DEFAULT_PATH "/usr/local/bin:/usr/bin:/bin"
#endif
#ifndef GDM_SESSION_ROOT_UID
#define GDM_SESSION_ROOT_UID 0
#endif
......@@ -1503,10 +1507,13 @@ gdm_session_worker_accredit_user (GdmSessionWorker *worker,
/* Let's give the user a default PATH if he doesn't already have one
*/
if (!gdm_session_worker_environment_variable_is_set (worker, "PATH")) {
const char *path;
path = g_getenv ("PATH");
gdm_session_worker_set_environment_variable (worker, "PATH", path);
if (strcmp (BINDIR, "/usr/bin") == 0) {
gdm_session_worker_set_environment_variable (worker, "PATH",
GDM_SESSION_DEFAULT_PATH);
} else {
gdm_session_worker_set_environment_variable (worker, "PATH",
BINDIR ":" GDM_SESSION_DEFAULT_PATH);
}
}
if (! _change_user (worker, uid, gid)) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment