refactor correct_password.c to avoid one if

Signed-off-by: walter harms <wharms@bfs.de>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
walter harms 2012-09-04 12:26:20 +02:00 committed by Denys Vlasenko
parent 9b80b903c7
commit d1d794fd48

View File

@ -41,12 +41,6 @@ int FAST_FUNC correct_password(const struct passwd *pw)
char *unencrypted, *encrypted; char *unencrypted, *encrypted;
const char *correct; const char *correct;
int r; int r;
#if ENABLE_FEATURE_SHADOWPASSWDS
/* Using _r function to avoid pulling in static buffers */
struct spwd spw;
char buffer[256];
#endif
/* fake salt. crypt() can choke otherwise. */ /* fake salt. crypt() can choke otherwise. */
correct = "aa"; correct = "aa";
if (!pw) { if (!pw) {
@ -55,7 +49,10 @@ int FAST_FUNC correct_password(const struct passwd *pw)
} }
correct = pw->pw_passwd; correct = pw->pw_passwd;
#if ENABLE_FEATURE_SHADOWPASSWDS #if ENABLE_FEATURE_SHADOWPASSWDS
/* Using _r function to avoid pulling in static buffers */
if ((correct[0] == 'x' || correct[0] == '*') && !correct[1]) { if ((correct[0] == 'x' || correct[0] == '*') && !correct[1]) {
struct spwd spw;
char buffer[256];
/* getspnam_r may return 0 yet set result to NULL. /* getspnam_r may return 0 yet set result to NULL.
* At least glibc 2.4 does this. Be extra paranoid here. */ * At least glibc 2.4 does this. Be extra paranoid here. */
struct spwd *result = NULL; struct spwd *result = NULL;