summaryrefslogtreecommitdiffstats
path: root/usr.bin/su
diff options
context:
space:
mode:
authorats <ats@FreeBSD.org>1994-11-17 16:56:58 +0000
committerats <ats@FreeBSD.org>1994-11-17 16:56:58 +0000
commitb31e23ee8347f0be8ce4edf8ced414158f1337c1 (patch)
treed70a6c0acf74d5a5b47d1cd2e365da4505890a5d /usr.bin/su
parent0728be3c1e425542d001e84a5c226592c76a31a9 (diff)
downloadFreeBSD-src-b31e23ee8347f0be8ce4edf8ced414158f1337c1.zip
FreeBSD-src-b31e23ee8347f0be8ce4edf8ced414158f1337c1.tar.gz
Fixed the PATH and cleanenv setting in su. This was totally broken in the
4.4BSD Lite source.
Diffstat (limited to 'usr.bin/su')
-rw-r--r--usr.bin/su/su.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/usr.bin/su/su.c b/usr.bin/su/su.c
index 244a695..95d54ec 100644
--- a/usr.bin/su/su.c
+++ b/usr.bin/su/su.c
@@ -82,7 +82,7 @@ main(argc, argv)
{
extern char **environ;
struct passwd *pwd;
- char *p, **g, *user, *shell, *username, *cleanenv[2], *nargv[4], **np;
+ char *p, **g, *user, *shell, *username, *cleanenv[20], *nargv[4], **np;
struct group *gr;
uid_t ruid;
int asme, ch, asthem, fastlogin, prio;
@@ -219,9 +219,9 @@ main(argc, argv)
if (!asme) {
if (asthem) {
p = getenv("TERM");
- cleanenv[0] = _PATH_DEFPATH;
- cleanenv[1] = NULL;
+ cleanenv[0] = NULL;
environ = cleanenv;
+ (void)setenv("PATH", _PATH_DEFPATH, 1);
(void)setenv("TERM", p, 1);
if (chdir(pwd->pw_dir) < 0)
errx(1, "no directory");
OpenPOWER on IntegriCloud