diff options
author | Ray Strode <rstrode@redhat.com> | 2014-04-01 13:11:57 -0400 |
---|---|---|
committer | Ray Strode <rstrode@redhat.com> | 2014-04-10 13:05:01 -0400 |
commit | e546e4dc6649a4fdf9065322420a28fa7e666782 (patch) | |
tree | 4cf41e113a9ba51d0ac0cc2b629f837ad2a67ce2 | |
parent | 257132e3bfb339b19ab35f9689748cfc3d3a3f93 (diff) | |
download | gdm-e546e4dc6649a4fdf9065322420a28fa7e666782.tar.gz |
worker: get PATH from parent instead of #define
If no PATH is set, then the session worker tries to set one up,
based on guess. This commit changes GDM to just use the PATH given
to GDM itself, rather than guessing (and getting it wrong).
https://bugzilla.gnome.org/show_bug.cgi?id=727980
-rw-r--r-- | common/Makefile.am | 1 | ||||
-rw-r--r-- | common/gdm-common.c | 2 | ||||
-rw-r--r-- | configure.ac | 17 | ||||
-rw-r--r-- | daemon/Makefile.am | 1 | ||||
-rw-r--r-- | daemon/gdm-session-worker.c | 15 |
5 files changed, 5 insertions, 31 deletions
diff --git a/common/Makefile.am b/common/Makefile.am index 2e97090b..ece167b6 100644 --- a/common/Makefile.am +++ b/common/Makefile.am @@ -20,7 +20,6 @@ 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) diff --git a/common/gdm-common.c b/common/gdm-common.c index 4017313b..aeb873be 100644 --- a/common/gdm-common.c +++ b/common/gdm-common.c @@ -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 (GDM_SESSION_DEFAULT_PATH)); + g_hash_table_insert (hash, g_strdup ("PATH"), g_strdup (g_getenv ("PATH"))); g_hash_table_insert (hash, g_strdup ("RUNNING_UNDER_GDM"), g_strdup ("true")); g_hash_table_remove (hash, "MAIL"); diff --git a/configure.ac b/configure.ac index f66fdd9d..10bb8384 100644 --- a/configure.ac +++ b/configure.ac @@ -274,23 +274,6 @@ 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 diff --git a/daemon/Makefile.am b/daemon/Makefile.am index 691c9391..6944baa9 100644 --- a/daemon/Makefile.am +++ b/daemon/Makefile.am @@ -19,7 +19,6 @@ 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) \ diff --git a/daemon/gdm-session-worker.c b/daemon/gdm-session-worker.c index 8493fbd0..5fc42c6b 100644 --- a/daemon/gdm-session-worker.c +++ b/daemon/gdm-session-worker.c @@ -90,10 +90,6 @@ #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 @@ -1507,13 +1503,10 @@ 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")) { - 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); - } + const char *path; + + path = g_getenv ("PATH"); + gdm_session_worker_set_environment_variable (worker, "PATH", path); } if (! _change_user (worker, uid, gid)) { |