From 7109b7c066fc0bf0b5e2dd99729fb95eef47ed58 Mon Sep 17 00:00:00 2001 From: Samanta Navarro Date: Fri, 28 Apr 2023 11:57:23 +0000 Subject: [PATCH] login_prompt: Simplify login_prompt API The only user of login_prompt is the login tool. This implies that the first argument is always the same. It is much easier to verify printf's format string and its argument if both are next to each other. Signed-off-by: Samanta Navarro --- lib/prototypes.h | 2 +- libmisc/loginprompt.c | 26 ++++++++++++-------------- src/login.c | 2 +- 3 files changed, 14 insertions(+), 16 deletions(-) diff --git a/lib/prototypes.h b/lib/prototypes.h index 012652a9..83014202 100644 --- a/lib/prototypes.h +++ b/lib/prototypes.h @@ -233,7 +233,7 @@ extern void dolastlog ( extern int login_access (const char *user, const char *from); /* loginprompt.c */ -extern void login_prompt (const char *, char *, int); +extern void login_prompt (char *, int); /* mail.c */ extern void mailcheck (void); diff --git a/libmisc/loginprompt.c b/libmisc/loginprompt.c index 2efafd11..d1af0e39 100644 --- a/libmisc/loginprompt.c +++ b/libmisc/loginprompt.c @@ -32,7 +32,7 @@ static void login_exit (unused int sig) * is set in login.defs, this file is displayed before the prompt. */ -void login_prompt (const char *prompt, char *name, int namesize) +void login_prompt (char *name, int namesize) { char buf[1024]; @@ -41,6 +41,7 @@ void login_prompt (const char *prompt, char *name, int namesize) char *cp; int i; FILE *fp; + const char *fname = getdef_str ("ISSUE_FILE"); sighandler_t sigquit; sighandler_t sigtstp; @@ -59,22 +60,19 @@ void login_prompt (const char *prompt, char *name, int namesize) * be displayed and display it before the prompt. */ - if (NULL != prompt) { - const char *fname = getdef_str ("ISSUE_FILE"); - if (NULL != fname) { - fp = fopen (fname, "r"); - if (NULL != fp) { - while ((i = getc (fp)) != EOF) { - (void) putc (i, stdout); - } - - (void) fclose (fp); + if (NULL != fname) { + fp = fopen (fname, "r"); + if (NULL != fp) { + while ((i = getc (fp)) != EOF) { + (void) putc (i, stdout); } + + (void) fclose (fp); } - (void) gethostname (buf, sizeof buf); - printf (prompt, buf); - (void) fflush (stdout); } + (void) gethostname (buf, sizeof buf); + printf (_("\n%s login: "), buf); + (void) fflush (stdout); /* * Read the user's response. The trailing newline will be diff --git a/src/login.c b/src/login.c index e5c6beff..01e4f174 100644 --- a/src/login.c +++ b/src/login.c @@ -910,7 +910,7 @@ int main (int argc, char **argv) preauth_flag = false; username = XMALLOCARRAY (USER_NAME_MAX_LENGTH + 1, char); username[USER_NAME_MAX_LENGTH] = '\0'; - login_prompt (_("\n%s login: "), username, USER_NAME_MAX_LENGTH); + login_prompt (username, USER_NAME_MAX_LENGTH); if ('\0' == username[0]) { /* Prompt for a new login */