From cda1f9a23db6d9d8e43d27e164c8e93248ed6fc3 Mon Sep 17 00:00:00 2001 From: nekral-guest Date: Sat, 24 May 2008 14:11:31 +0000 Subject: [PATCH] Simply passwd_check since it's never used when configured with PAM support. --- ChangeLog | 5 +++++ libmisc/pwdcheck.c | 48 +++++++++++----------------------------------- 2 files changed, 16 insertions(+), 37 deletions(-) diff --git a/ChangeLog b/ChangeLog index db291981..9360b09a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-05-24 Nicolas François + + * libmisc/pwdcheck.c: Simply passwd_check since it's never used + when configured with PAM support. + 2008-05-24 Nicolas François Fix compiler warnings: diff --git a/libmisc/pwdcheck.c b/libmisc/pwdcheck.c index ea734fce..71c08f36 100644 --- a/libmisc/pwdcheck.c +++ b/libmisc/pwdcheck.c @@ -32,55 +32,29 @@ #ident "$Id$" +#ifndef USE_PAM + #include +#include #include "prototypes.h" #include "defines.h" -#ifdef USE_PAM -#include "pam_defs.h" -#else -#include #include "pwauth.h" -#endif -#define WRONGPWD2 "incorrect password for `%s'" + void passwd_check (const char *user, const char *passwd, const char *progname) { -#ifdef USE_PAM - pam_handle_t *pamh = NULL; - int retcode; - - if (pam_start (progname, user, &conv, &pamh)) { - bailout: - SYSLOG ((LOG_WARN, WRONGPWD2, user)); - sleep (1); - fprintf (stderr, _("Incorrect password for %s.\n"), user); - exit (1); - } - if (pam_authenticate (pamh, 0)) - goto bailout; - - retcode = pam_acct_mgmt (pamh, 0); - if (retcode == PAM_NEW_AUTHTOK_REQD) - retcode = pam_chauthtok (pamh, PAM_CHANGE_EXPIRED_AUTHTOK); - if (retcode) - goto bailout; - - if (pam_setcred (pamh, 0)) - goto bailout; - - /* no need to establish a session; this isn't a session-oriented - * activity... */ - -#else /* !USE_PAM */ - struct spwd *sp; - if ((sp = getspnam (user))) /* !USE_PAM, no need for xgetspnam */ + sp = getspnam (user); /* !USE_PAM, no need for xgetspnam */ + if (NULL != sp) { passwd = sp->sp_pwdp; + } if (pw_auth (passwd, user, PW_LOGIN, (char *) 0) != 0) { - SYSLOG ((LOG_WARN, WRONGPWD2, user)); + SYSLOG ((LOG_WARN, "incorrect password for `%s'", user)); sleep (1); fprintf (stderr, _("Incorrect password for %s.\n"), user); exit (1); } -#endif /* !USE_PAM */ } +#else /* USE_PAM */ +extern int errno; /* warning: ANSI C forbids an empty source file */ +#endif /* USE_PAM */