summaryrefslogtreecommitdiffstats
path: root/libexec/rexecd
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>1995-07-29 15:21:15 +0000
committerpeter <peter@FreeBSD.org>1995-07-29 15:21:15 +0000
commit8ca6f0e2ac03860ba35ea0157df1176066c3f36f (patch)
tree31519eb383d33c81c376bde44d9ca7495937a47a /libexec/rexecd
parent47d4076d8fab400c4855f5e059e713f0fcf6a1ef (diff)
downloadFreeBSD-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')
-rw-r--r--libexec/rexecd/rexecd.c2
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);
OpenPOWER on IntegriCloud