summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2014-04-01 13:11:57 -0400
committerRay Strode <rstrode@redhat.com>2014-04-10 13:05:01 -0400
commite546e4dc6649a4fdf9065322420a28fa7e666782 (patch)
tree4cf41e113a9ba51d0ac0cc2b629f837ad2a67ce2
parent257132e3bfb339b19ab35f9689748cfc3d3a3f93 (diff)
downloadgdm-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.am1
-rw-r--r--common/gdm-common.c2
-rw-r--r--configure.ac17
-rw-r--r--daemon/Makefile.am1
-rw-r--r--daemon/gdm-session-worker.c15
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)) {