From 589f1d626332f7f0cc6a6210c064a6e7ae62fa8c Mon Sep 17 00:00:00 2001 From: "Todd C. Miller" Date: Sat, 2 Sep 1995 02:25:17 +0000 Subject: [PATCH] moved tty stuff into sudo.c --- logging.c | 12 ------------ sudo.c | 15 +++++++++++++++ 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/logging.c b/logging.c index 6ee481068..f37339a48 100644 --- a/logging.c +++ b/logging.c @@ -123,7 +123,6 @@ void log_error(code) char *p; int count; time_t now; - char *tty; #if (LOGGING & SLOG_FILE) FILE *fp; #endif /* LOGGING & SLOG_FILE */ @@ -132,17 +131,6 @@ void log_error(code) char *tmp, save; #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 * XXX - don't use 33, use a macro! diff --git a/sudo.c b/sudo.c index 4a2641639..b185bb7bb 100644 --- a/sudo.c +++ b/sudo.c @@ -132,6 +132,7 @@ char **Argv; char *cmnd = NULL; char *cmnd_args = NULL; char *user = NULL; +char *tty = NULL; char *epasswd = NULL; char *prompt = PASSPROMPT; char *shell = NULL; @@ -367,6 +368,20 @@ static void load_globals(sudo_mode) (void) tzset(); /* set the timezone if applicable */ #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 * (must be done as root to get real passwd on some systems) -- 2.40.0