diff options
author | peter <peter@FreeBSD.org> | 1995-07-29 15:21:15 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 1995-07-29 15:21:15 +0000 |
commit | 8ca6f0e2ac03860ba35ea0157df1176066c3f36f (patch) | |
tree | 31519eb383d33c81c376bde44d9ca7495937a47a /libexec/rexecd/rexecd.c | |
parent | 47d4076d8fab400c4855f5e059e713f0fcf6a1ef (diff) | |
download | FreeBSD-src-8ca6f0e2ac03860ba35ea0157df1176066c3f36f.zip FreeBSD-src-8ca6f0e2ac03860ba35ea0157df1176066c3f36f.tar.gz |
rexecd was not calling "setlogin()" when it should have. This was causing
getlogin() to return wrong answers (eg: "root").
Reviewed by: davidg
Obtained from: James Jegers, for NetBSD, slightly reworked by me.
Diffstat (limited to 'libexec/rexecd/rexecd.c')
-rw-r--r-- | libexec/rexecd/rexecd.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/libexec/rexecd/rexecd.c b/libexec/rexecd/rexecd.c index cd94b68..5fc3617 100644 --- a/libexec/rexecd/rexecd.c +++ b/libexec/rexecd/rexecd.c @@ -258,6 +258,8 @@ doit(f, fromp) pwd->pw_shell = _PATH_BSHELL; if (f > 2) (void) close(f); + if (setlogin(pwd->pw_name) < 0) + syslog(LOG_ERR, "setlogin() failed: %m"); (void) setgid((gid_t)pwd->pw_gid); initgroups(pwd->pw_name, pwd->pw_gid); (void) setuid((uid_t)pwd->pw_uid); |