diff options
author | ats <ats@FreeBSD.org> | 1994-11-17 16:56:58 +0000 |
---|---|---|
committer | ats <ats@FreeBSD.org> | 1994-11-17 16:56:58 +0000 |
commit | b31e23ee8347f0be8ce4edf8ced414158f1337c1 (patch) | |
tree | d70a6c0acf74d5a5b47d1cd2e365da4505890a5d /usr.bin/su/su.c | |
parent | 0728be3c1e425542d001e84a5c226592c76a31a9 (diff) | |
download | FreeBSD-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/su.c')
-rw-r--r-- | usr.bin/su/su.c | 6 |
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"); |