summaryrefslogtreecommitdiffstats
path: root/login-utils/login.c
diff options
context:
space:
mode:
authorKarel Zak2012-02-28 11:16:16 +0100
committerKarel Zak2012-02-28 11:16:16 +0100
commit607e6b7ce8658e552fdffbb99c51cdb01828e27b (patch)
treeee07bcca5f4375c653c557104dbd8dcb42251d87 /login-utils/login.c
parenttest: test 'none' source for mount(8) (diff)
downloadkernel-qcow2-util-linux-607e6b7ce8658e552fdffbb99c51cdb01828e27b.tar.gz
kernel-qcow2-util-linux-607e6b7ce8658e552fdffbb99c51cdb01828e27b.tar.xz
kernel-qcow2-util-linux-607e6b7ce8658e552fdffbb99c51cdb01828e27b.zip
login: support crazy shadow-utils syntax in login.defs
standard syntax for FOO=data: ENV_FOO data additional syntax: ENV_FOO FOO=data Reported-by: Colin Guthrie colin@mageia.org Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'login-utils/login.c')
-rw-r--r--login-utils/login.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/login-utils/login.c b/login-utils/login.c
index 84d8b1bdb..bc0eaec26 100644
--- a/login-utils/login.c
+++ b/login-utils/login.c
@@ -1145,13 +1145,10 @@ static void init_environ(struct login_context *cxt)
setenv("TERM", termenv, 1);
if (pwd->pw_uid)
- setenv("PATH", getlogindefs_str("ENV_PATH", _PATH_DEFPATH), 1);
- else {
- const char *x = getlogindefs_str("ENV_ROOTPATH", NULL);
- if (!x)
- x = getlogindefs_str("ENV_SUPATH", _PATH_DEFPATH_ROOT);
- setenv("PATH", x, 1);
- }
+ logindefs_setenv("PATH", "ENV_PATH", _PATH_DEFPATH);
+
+ else if (logindefs_setenv("PATH", "ENV_ROOTPATH", NULL) != 0)
+ logindefs_setenv("PATH", "ENV_SUPATH", _PATH_DEFPATH_ROOT);
/* mailx will give a funny error msg if you forget this one */
len = snprintf(tmp, sizeof(tmp), "%s/%s", _PATH_MAILDIR, pwd->pw_name);