From d4ca9fdcf9035b1d3fcdf9cc865fcf05229f22bb Mon Sep 17 00:00:00 2001 From: Alejandro Colomar Date: Wed, 29 Jan 2025 16:37:51 +0100 Subject: [PATCH] lib/, src/, doc/: Remove dead code pw_auth()'s $4 was always being specified as NULL. Remove the parameter. Instead, set a local variable to NULL at function entry, and remove code that never runs (conditional on $4 != NULL). Reviewed-by: Sam James Signed-off-by: Alejandro Colomar --- doc/HOWTO | 2 +- lib/pwauth.c | 14 +++----------- lib/pwauth.h | 3 +-- lib/pwdcheck.c | 2 +- src/login.c | 4 ++-- src/su.c | 2 +- 6 files changed, 9 insertions(+), 18 deletions(-) diff --git a/doc/HOWTO b/doc/HOWTO index bb4e052db..4bb22a9cb 100644 --- a/doc/HOWTO +++ b/doc/HOWTO @@ -1751,7 +1751,7 @@ } #ifdef HAS_SHADOW if ((pw->pw_passwd && pw->pw_passwd[0] == '@' - && pw_auth (pw->pw_passwd+1, pw->pw_name, PW_LOGIN, NULL)) + && pw_auth (pw->pw_passwd+1, pw->pw_name, PW_LOGIN)) || !valid (passwd, pw)) { return (UPAP_AUTHNAK); } diff --git a/lib/pwauth.c b/lib/pwauth.c index afdc2337a..93ea546a6 100644 --- a/lib/pwauth.c +++ b/lib/pwauth.c @@ -50,14 +50,14 @@ static const char *PROMPT = gettext_noop ("%s's Password: "); int pw_auth (const char *cipher, const char *user, - int reason, - /*@null@*/const char *input) + int reason) { int retval; char prompt[1024]; char *clear = NULL; const char *cp; const char *encrypted; + const char *input = NULL; #ifdef SKEY bool use_skey = false; @@ -73,14 +73,6 @@ int pw_auth (const char *cipher, return 0; } - /* - * There are even programs for changing the user name ... - */ - - if ((PW_CHANGE == reason) && (NULL != input)) { - return 0; - } - /* * WARNING: * @@ -132,7 +124,7 @@ int pw_auth (const char *cipher, * get the cleartext password for us. */ - if ((PW_FTP != reason) && (PW_REXEC != reason) && (NULL == input)) { + if ((PW_FTP != reason) && (PW_REXEC != reason)) { cp = getdef_str ("LOGIN_STRING"); if (NULL == cp) { cp = _(PROMPT); diff --git a/lib/pwauth.h b/lib/pwauth.h index b610025dd..65def0a40 100644 --- a/lib/pwauth.h +++ b/lib/pwauth.h @@ -17,8 +17,7 @@ #ifndef USE_PAM int pw_auth (const char *cipher, const char *user, - int flag, - /*@null@*/const char *input); + int flag); #endif /* !USE_PAM */ /* diff --git a/lib/pwdcheck.c b/lib/pwdcheck.c index 93c9f5ced..29a6dcd80 100644 --- a/lib/pwdcheck.c +++ b/lib/pwdcheck.c @@ -28,7 +28,7 @@ void passwd_check (const char *user, const char *passwd, MAYBE_UNUSED const char if (NULL != sp) { passwd = sp->sp_pwdp; } - if (pw_auth (passwd, user, PW_LOGIN, NULL) != 0) { + if (pw_auth(passwd, user, PW_LOGIN) != 0) { SYSLOG ((LOG_WARN, "incorrect password for `%s'", user)); (void) sleep (1); fprintf (log_get_logfd(), _("Incorrect password for %s.\n"), user); diff --git a/src/login.c b/src/login.c index eafd498dd..21a2d8787 100644 --- a/src/login.c +++ b/src/login.c @@ -903,7 +903,7 @@ int main (int argc, char **argv) goto auth_ok; } - if (pw_auth (user_passwd, username, reason, NULL) == 0) { + if (pw_auth(user_passwd, username, reason) == 0) { goto auth_ok; } @@ -964,7 +964,7 @@ int main (int argc, char **argv) * all). --marekm */ if (streq(user_passwd, "")) { - pw_auth ("!", username, reason, NULL); + pw_auth("!", username, reason); } /* diff --git a/src/su.c b/src/su.c index 7b3c9b04a..da8f783c6 100644 --- a/src/su.c +++ b/src/su.c @@ -590,7 +590,7 @@ static void check_perms_nopam (const struct passwd *pw) * The first character of an administrator defined method is an '@' * character. */ - if (pw_auth (password, name, PW_SU, NULL) != 0) { + if (pw_auth(password, name, PW_SU) != 0) { SYSLOG (((pw->pw_uid != 0)? LOG_NOTICE : LOG_WARN, "Authentication failed for %s", name)); fprintf(stderr, _("%s: Authentication failure\n"), Prog); -- 2.47.2