From b08f1a94ffdfd1bef1932f927d874e01c5eb6db5 Mon Sep 17 00:00:00 2001 From: guido Date: Mon, 8 Aug 1994 17:14:46 +0000 Subject: 1. Correct invalid setsid and ioctl return value checks. 2. set some seteuid calls to allow sliplogin to be run by users from the commandline in stead of from login inlo. Submitted by: guido --- usr.sbin/sliplogin/sliplogin.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'usr.sbin/sliplogin') diff --git a/usr.sbin/sliplogin/sliplogin.c b/usr.sbin/sliplogin/sliplogin.c index 7e52ff7..d8af959 100644 --- a/usr.sbin/sliplogin/sliplogin.c +++ b/usr.sbin/sliplogin/sliplogin.c @@ -208,6 +208,7 @@ hup_handler(s) { char logoutfile[MAXPATHLEN]; + seteuid(0); (void)sprintf(logoutfile, "%s.%s", _PATH_LOGOUT, loginname); if (access(logoutfile, R_OK|X_OK) != 0) (void)strcpy(logoutfile, _PATH_LOGOUT); @@ -256,7 +257,7 @@ main(argc, argv) #ifdef POSIX if (fork() > 0) exit(0); - if (setsid() != 0) + if (setsid() == -1) perror("setsid"); #else if ((fd = open("/dev/tty", O_RDONLY, 0)) >= 0) { @@ -281,7 +282,7 @@ main(argc, argv) close(fd); } #ifdef TIOCSCTTY - if (ioctl(0, TIOCSCTTY, (caddr_t)0) != 0) + if (ioctl(0, TIOCSCTTY, (caddr_t)0) == -1) perror("ioctl (TIOCSCTTY)"); #endif } else { @@ -373,6 +374,8 @@ main(argc, argv) exit(6); } + /* reset uid to users' to allow the user to give a signal. */ + seteuid(uid); /* twiddle thumbs until we get a signal */ while (1) sigpause(0); -- cgit v1.1