From d1d794fd4878834324602ae12ad7af73064683a9 Mon Sep 17 00:00:00 2001 From: walter harms Date: Tue, 4 Sep 2012 12:26:20 +0200 Subject: [PATCH] refactor correct_password.c to avoid one if Signed-off-by: walter harms Signed-off-by: Denys Vlasenko --- libbb/correct_password.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/libbb/correct_password.c b/libbb/correct_password.c index 6301589e6..7cabd33d0 100644 --- a/libbb/correct_password.c +++ b/libbb/correct_password.c @@ -41,12 +41,6 @@ int FAST_FUNC correct_password(const struct passwd *pw) char *unencrypted, *encrypted; const char *correct; 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. */ correct = "aa"; if (!pw) { @@ -55,7 +49,10 @@ int FAST_FUNC correct_password(const struct passwd *pw) } correct = pw->pw_passwd; #if ENABLE_FEATURE_SHADOWPASSWDS + /* Using _r function to avoid pulling in static buffers */ if ((correct[0] == 'x' || correct[0] == '*') && !correct[1]) { + struct spwd spw; + char buffer[256]; /* getspnam_r may return 0 yet set result to NULL. * At least glibc 2.4 does this. Be extra paranoid here. */ struct spwd *result = NULL; -- 2.25.1