--- ./src/Makefile.in Fri Nov 5 14:03:54 1999 +++ ../Eterm-0.8.10/./src/Makefile.in Fri Feb 25 13:16:31 2000 @@ -255,7 +255,7 @@ Eterm: $(Eterm_OBJECTS) $(Eterm_DEPENDENCIES) @rm -f Eterm - $(LINK) $(Eterm_LDFLAGS) $(Eterm_OBJECTS) $(Eterm_LDADD) $(LIBS) + $(LINK) $(Eterm_OBJECTS) $(Eterm_LDFLAGS) $(Eterm_LDADD) $(LIBS) tags: TAGS --- ./src/utmp.c Wed Sep 29 12:16:31 1999 +++ ../Eterm-0.8.10/./src/utmp.c Fri Feb 25 17:37:38 2000 @@ -230,8 +230,12 @@ privileges(INVOKE); utmpname(UTMP_FILENAME); setutent(); - if (getutid(&utmp) == NULL) + strncpy(utmp.ut_id, ut_id, sizeof(utmp.ut_id)); + utmp.ut_type = USER_PROCESS; + if (getutid(&utmp) == NULL) { + privileges(REVERT); return; + } utmp.ut_type = DEAD_PROCESS; utmp.ut_time = time(NULL); pututline(&utmp); --- ./src/command.c Tue Nov 2 11:34:35 1999 +++ ../Eterm-0.8.10/./src/command.c Mon Feb 28 11:26:25 2000 @@ -1513,7 +1513,9 @@ D_CMD(("Child_signal: installing signal handler\n")); signal(SIGCHLD, Child_signal); +#if RETSIGTYPE != void return ((RETSIGTYPE) 0); +#endif } /* Handles signals usually sent by a user, like HUP, TERM, INT. */ @@ -1653,8 +1655,12 @@ { int fd = -1; + int set_privs = (geteuid() != my_euid) || (getgid() != my_egid); + if (set_privs) privileges(INVOKE); ptydev = ttydev = _getpty(&fd, O_RDWR | O_NDELAY, 0622, 0); + if (set_privs) privileges(REVERT); + return (ptydev == NULL ? -1 : fd); }