]> granicus.if.org Git - shadow/commitdiff
* src/login.c: Do not mix USE_PAM and !USE_PAM code.
authornekral-guest <nekral-guest@5a98b0ae-9ef6-0310-add3-de5d479b70d7>
Sat, 20 Sep 2008 14:17:20 +0000 (14:17 +0000)
committernekral-guest <nekral-guest@5a98b0ae-9ef6-0310-add3-de5d479b70d7>
Sat, 20 Sep 2008 14:17:20 +0000 (14:17 +0000)
ChangeLog
src/login.c

index 15223d9c2b19a0f0fb91aecc49b60b64d85f9594..4fff43ef678e2a78ebfd17986c66ce1e6c380d40 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2008-09-20  Nicolas François  <nicolas.francois@centraliens.net>
+
+       * src/login.c: Do not mix USE_PAM and !USE_PAM code.
+
 2008-09-20  Nicolas François  <nicolas.francois@centraliens.net>
 
        * src/login.c: Use failent_user to log to audit. username is the
index e82ead10ce22eeb329f3de9e4105e66c5fdc31c9..99a055136c046107c150a694e8f3acfdff2c5f83 100644 (file)
@@ -811,6 +811,19 @@ int main (int argc, char **argv)
                                            hushed (&pwent) ? PAM_SILENT : 0);
                PAM_FAIL_CHECK;
 
+               pwd = xgetpwnam (pam_user);
+               if (NULL == pwd) {
+                       pwent.pw_name = pam_user;
+                       strcpy (temp_pw, "!");
+                       pwent.pw_passwd = temp_pw;
+                       pwent.pw_shell = temp_shell;
+
+                       preauth_flag = false;
+                       failed = true;
+               } else {
+                       pwent = *pwd;
+               }
+
 #else                          /* ! USE_PAM */
                while (true) {  /* repeatedly get login/password pairs */
                        failed = false; /* haven't failed authentication yet */
@@ -824,17 +837,10 @@ int main (int argc, char **argv)
                                              sizeof username);
                                continue;
                        }
-#endif                         /* ! USE_PAM */
 
-#ifdef USE_PAM
-               pwd = xgetpwnam (pam_user);
-               if (NULL == pwd) {
-                       pwent.pw_name = pam_user;
-#else
                pwd = xgetpwnam (username);
                if (NULL == pwd) {
                        pwent.pw_name = username;
-#endif
                        strcpy (temp_pw, "!");
                        pwent.pw_passwd = temp_pw;
                        pwent.pw_shell = temp_shell;
@@ -844,7 +850,7 @@ int main (int argc, char **argv)
                } else {
                        pwent = *pwd;
                }
-#ifndef USE_PAM
+
                spwd = NULL;
                if (   (NULL != pwd)
                    && (strcmp (pwd->pw_passwd, SHADOW_PASSWD_STRING) == 0)) {
@@ -995,9 +1001,11 @@ int main (int argc, char **argv)
                        closelog ();
                        exit (1);
                }
-       }                       /* while (1) */
+       }                       /* while (true) */
 #endif                         /* ! USE_PAM */
+
        alarm (0);              /* turn off alarm clock */
+
 #ifndef USE_PAM                        /* PAM does this */
        /*
         * porttime checks moved here, after the user has been