1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-02-04 17:15:50 +00:00

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
This commit is contained in:
Guido van Rooij 1994-08-08 17:14:46 +00:00
parent 3578b06c6a
commit 5d2d59d9aa
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=1955

View File

@ -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);