]> andersk Git - openssh.git/blobdiff - auth-passwd.c
- Prevent typedefs from being compiled more than once. Report from
[openssh.git] / auth-passwd.c
index 81721c2fcace2edf77abd602b50d33c2a3c7f8ce..2ac86242c65b3062a1f30b3a7b49a2359d722ff0 100644 (file)
@@ -9,7 +9,7 @@
 
 #include "includes.h"
 
-#ifndef HAVE_LIBPAM
+#ifndef USE_PAM
 
 RCSID("$Id$");
 
@@ -19,12 +19,14 @@ RCSID("$Id$");
 #include "xmalloc.h"
 
 #ifdef HAVE_SHADOW_H
-#include <shadow.h>
-#endif
-
-#ifdef HAVE_MD5_PASSWORDS
-#include "md5crypt.h"
+# include <shadow.h>
 #endif
+#if defined(HAVE_CRYPT_H) && !defined(CRYPT_H_BREAKS_BUILD)
+# include <crypt.h>
+#endif /* defined(HAVE_CRYPT_H) && !defined(CRYPT_H_BREAKS_BUILD) */
+#if defined(HAVE_MD5_PASSWORDS) && !defined(HAVE_MD5_CRYPT)
+# include "md5crypt.h"
+#endif /* defined(HAVE_MD5_PASSWORDS) && !defined(HAVE_MD5_CRYPT) */
 
 /*
  * Tries to authenticate the user using password.  Returns true if
@@ -41,13 +43,13 @@ auth_password(struct passwd * pw, const char *password)
        struct spwd *spw;
 #endif
 
+       /* deny if no user. */
+       if (pw == NULL)
+               return 0;
        if (pw->pw_uid == 0 && options.permit_root_login == 2)
                return 0;
        if (*password == '\0' && options.permit_empty_passwd == 0)
                return 0;
-       /* deny if no user. */
-       if (pw == NULL)
-               return 0;
 
 #ifdef SKEY
        if (options.skey_authentication == 1) {
@@ -74,14 +76,14 @@ auth_password(struct passwd * pw, const char *password)
 
 #if defined(HAVE_SHADOW_H) && !defined(DISABLE_SHADOW)
        spw = getspnam(pw->pw_name);
-       if (spw == NULL) 
-               return(0);
-
-       /* Check for users with no password. */
-       if (strcmp(password, "") == 0 && strcmp(spw->sp_pwdp, "") == 0)
-               return 1;
+       if (spw != NULL) 
+       {
+               /* Check for users with no password. */
+               if (strcmp(password, "") == 0 && strcmp(spw->sp_pwdp, "") == 0)
+                       return 1;
 
-       pw_password = spw->sp_pwdp;
+               pw_password = spw->sp_pwdp;
+       }
 #endif /* defined(HAVE_SHADOW_H) && !defined(DISABLE_SHADOW) */
 
        if (pw_password[0] != '\0')
@@ -101,4 +103,4 @@ auth_password(struct passwd * pw, const char *password)
        /* Authentication is accepted if the encrypted passwords are identical. */
        return (strcmp(encrypted_password, pw_password) == 0);
 }
-#endif /* !HAVE_LIBPAM */
+#endif /* !USE_PAM */
This page took 0.035568 seconds and 4 git commands to generate.