moved tty stuff into sudo.c

This commit is contained in:
Todd C. Miller
1995-09-02 02:25:17 +00:00
parent 184dac958a
commit 589f1d6263
2 changed files with 15 additions and 12 deletions

View File

@@ -123,7 +123,6 @@ void log_error(code)
char *p; char *p;
int count; int count;
time_t now; time_t now;
char *tty;
#if (LOGGING & SLOG_FILE) #if (LOGGING & SLOG_FILE)
FILE *fp; FILE *fp;
#endif /* LOGGING & SLOG_FILE */ #endif /* LOGGING & SLOG_FILE */
@@ -132,17 +131,6 @@ void log_error(code)
char *tmp, save; char *tmp, save;
#endif /* LOGGING & SLOG_SYSLOG */ #endif /* LOGGING & SLOG_SYSLOG */
/*
* Get our ttyname or set to "none"
*/
if ((tty = (char *) ttyname(0)) == NULL)
tty = (char *) ttyname(1);
if (tty && (p = strrchr(tty, '/')))
tty = p + 1;
else
tty = "none";
/* /*
* Allocate enough memory for logline so we won't overflow it * Allocate enough memory for logline so we won't overflow it
* XXX - don't use 33, use a macro! * XXX - don't use 33, use a macro!

15
sudo.c
View File

@@ -132,6 +132,7 @@ char **Argv;
char *cmnd = NULL; char *cmnd = NULL;
char *cmnd_args = NULL; char *cmnd_args = NULL;
char *user = NULL; char *user = NULL;
char *tty = NULL;
char *epasswd = NULL; char *epasswd = NULL;
char *prompt = PASSPROMPT; char *prompt = PASSPROMPT;
char *shell = NULL; char *shell = NULL;
@@ -367,6 +368,20 @@ static void load_globals(sudo_mode)
(void) tzset(); /* set the timezone if applicable */ (void) tzset(); /* set the timezone if applicable */
#endif /* HAVE_TZSET */ #endif /* HAVE_TZSET */
/*
* Need to get tty early since it's used for logging
*/
if ((tty = (char *) ttyname(0)) || (tty = (char *) ttyname(0))) {
if ((p = strrchr(tty, '/')))
tty = p + 1;
if ((tty = strdup(tty)) == NULL) {
perror("malloc");
(void) fprintf(stderr, "%s: cannot allocate memory!\n", Argv[0]);
exit(1);
}
} else
tty = "none";
/* /*
* loading the user & epasswd global variable from the passwd file * loading the user & epasswd global variable from the passwd file
* (must be done as root to get real passwd on some systems) * (must be done as root to get real passwd on some systems)