]> git.pld-linux.org Git - packages/openssh.git/blobdiff - openssh-PAM_NEW_AUTHTOK.patch
- enhanced openssh-chroot.patch with UseChroot configuration option
[packages/openssh.git] / openssh-PAM_NEW_AUTHTOK.patch
index 5acd25d7663f30f9aa1789d4975957a4e7ba7a65..93dee61ff09bff424c2279ae10bb95d564b48065 100644 (file)
@@ -1,33 +1,56 @@
-diff -ur openssh-1.2pre15/sshd.c openssh-1.2pre15.new/sshd.c
---- openssh-1.2pre15/sshd.c    Thu Nov 25 01:54:59 1999
-+++ openssh-1.2pre15.new/sshd.c        Thu Dec  2 19:43:53 1999
-@@ -253,15 +253,21 @@
+diff -Naur openssh-2.1.1p1/auth-pam.c openssh-2.1.1p1-p/auth-pam.c
+--- openssh-2.1.1p1/auth-pam.c Wed May 31 03:20:12 2000
++++ openssh-2.1.1p1-p/auth-pam.c       Mon Jun 12 16:31:42 2000
+@@ -18,6 +18,8 @@
+ #define NEW_AUTHTOK_MSG \
+       "Warning: You password has expired, please change it now"
++extern char *forced_command;
++
+ /* Callbacks */
+ static int pamconv(int num_msg, const struct pam_message **msg,
+         struct pam_response **resp, void *appdata_ptr);
+@@ -123,6 +125,9 @@
+               debug("PAM Password authentication accepted for user \"%.100s\"", 
+                       pw->pw_name);
+               return 1;
++      } else if (pam_retval == PAM_NEW_AUTHTOK_REQD) {
++              debug("PAM (expired)Password authentication accepted for user \"%.100s\"", pw->pw_name);
++              return 1;
+       } else {
+               debug("PAM Password authentication for \"%.100s\" failed: %s", 
+                       pw->pw_name, PAM_STRERROR((pam_handle_t *)pamh, pam_retval));
+@@ -159,6 +164,9 @@
+                       break;
+               case PAM_NEW_AUTHTOK_REQD:
+                       pam_msg_cat(NEW_AUTHTOK_MSG);
++                      forced_command = xmalloc(strlen("/usr/bin/passwd") + 1);
++                      strcpy(forced_command, "/usr/bin/passwd");
++/*                    pam_retval = pam_chauthtok((pam_handle_t *)pamh, PAM_CHANGE_EXPIRED_AUTHTOK); */
+                       break;
+               default:
+                       log("PAM rejected by account configuration: %.200s", 
+@@ -184,10 +192,9 @@
        }
  
-       pam_retval = pam_acct_mgmt((pam_handle_t *)pamh, 0);
+       pam_retval = pam_open_session((pam_handle_t *)pamh, 0);
 -      if (pam_retval != PAM_SUCCESS) {
--              log("PAM rejected by account configuration: %.200s", PAM_STRERROR((pam_handle_t *)pamh, pam_retval));
--              do_fake_authloop(username);
++      if ((pam_retval != PAM_SUCCESS) && (pam_retval != PAM_NEW_AUTHTOK_REQD))
+               fatal("PAM session setup failed: %.200s", 
+                       PAM_STRERROR((pam_handle_t *)pamh, pam_retval));
 -      }
-+      if(pam_retval == PAM_NEW_AUTHTOK_REQD) {
-+              forced_command = xmalloc(strlen("/usr/bin/passwd -N ssh") + 1);
-+              strcpy(forced_command, "/usr/bin/passwd -N ssh");
-+/*            pam_retval = pam_chauthtok((pam_handle_t *)pamh, PAM_CHANGE_EXPIRED_AUTHTOK); */
-+      } else {
-+              if (pam_retval != PAM_SUCCESS) {
-+                      log("PAM rejected by account configuration: %.200s", PAM_STRERROR((pam_handle_t *)pamh, pam_retval));
-+                      do_fake_authloop(username);
-+              }
+ }
  
--      pam_retval = pam_open_session((pam_handle_t *)pamh, 0);
+ /* Set PAM credentials */ 
+@@ -197,10 +204,9 @@
+  
+       debug("PAM establishing creds");
+       pam_retval = pam_setcred((pam_handle_t *)pamh, PAM_ESTABLISH_CRED);
 -      if (pam_retval != PAM_SUCCESS) {
--              log("PAM session setup failed: %.200s", PAM_STRERROR((pam_handle_t *)pamh, pam_retval));
--              do_fake_authloop(username);
-+              pam_retval = pam_open_session((pam_handle_t *)pamh, 0);
-+              if (pam_retval != PAM_SUCCESS) {
-+                      log("PAM session setup failed: %.200s", PAM_STRERROR((pam_handle_t *)pamh, pam_retval));
-+                      do_fake_authloop(username);
-+              }
-       }
++      if ((pam_retval != PAM_SUCCESS) && (pam_retval != PAM_NEW_AUTHTOK_REQD))
+               fatal("PAM setcred failed: %.200s", 
+                       PAM_STRERROR((pam_handle_t *)pamh, pam_retval));
+-      }
  }
- #endif /* HAVE_LIBPAM */
+ /* Cleanly shutdown PAM */
This page took 0.082549 seconds and 4 git commands to generate.