Blob Blame History Raw
diff -up vsftpd-2.0.5/sysdeputil.c.pam_end vsftpd-2.0.5/sysdeputil.c
--- vsftpd-2.0.5/sysdeputil.c.pam_end	2007-11-02 15:53:20.000000000 +0100
+++ vsftpd-2.0.5/sysdeputil.c	2007-11-08 13:49:44.000000000 +0100
@@ -320,7 +320,7 @@ vsf_sysdep_check_auth(const struct mystr
     retval = pam_set_item(s_pamh, PAM_RHOST, str_getbuf(p_remote_host));
   if (retval != PAM_SUCCESS)
   {
-    (void) pam_end(s_pamh, 0);
+    (void) pam_end(s_pamh, retval);
     s_pamh = 0;
     return 0;
   }
@@ -329,7 +329,7 @@ vsf_sysdep_check_auth(const struct mystr
   retval = pam_set_item(s_pamh, PAM_TTY, "ftp");
   if (retval != PAM_SUCCESS)
   {
-    (void) pam_end(s_pamh, 0);
+    (void) pam_end(s_pamh, retval);
     s_pamh = 0;
     return 0;
   }
@@ -338,7 +338,7 @@ vsf_sysdep_check_auth(const struct mystr
   retval = pam_set_item(s_pamh, PAM_RUSER, str_getbuf(p_user_str));
   if (retval != PAM_SUCCESS)
   {
-    (void) pam_end(s_pamh, 0);
+    (void) pam_end(s_pamh, retval);
     s_pamh = 0;
     return 0;
   }
@@ -346,28 +346,28 @@ vsf_sysdep_check_auth(const struct mystr
   retval = pam_authenticate(s_pamh, 0);
   if (retval != PAM_SUCCESS)
   {
-    (void) pam_end(s_pamh, 0);
+    (void) pam_end(s_pamh, retval);
     s_pamh = 0;
     return 0;
   }
   retval = pam_acct_mgmt(s_pamh, 0);
   if (retval != PAM_SUCCESS)
   {
-    (void) pam_end(s_pamh, 0);
+    (void) pam_end(s_pamh, retval);
     s_pamh = 0;
     return 0;
   }
   retval = pam_setcred(s_pamh, PAM_ESTABLISH_CRED);
   if (retval != PAM_SUCCESS)
   {
-    (void) pam_end(s_pamh, 0);
+    (void) pam_end(s_pamh, retval);
     s_pamh = 0;
     return 0;
   }
   if (!tunable_session_support)
   {
     /* You're in already! */
-    (void) pam_end(s_pamh, 0);
+    (void) pam_end(s_pamh, retval);
     s_pamh = 0;
     return 1;
   }
@@ -378,7 +378,7 @@ vsf_sysdep_check_auth(const struct mystr
   {
     vsf_remove_uwtmp();
     (void) pam_setcred(s_pamh, PAM_DELETE_CRED);
-    (void) pam_end(s_pamh, 0);
+    (void) pam_end(s_pamh, retval);
     s_pamh = 0;
     return 0;
   }
@@ -399,7 +399,7 @@ vsf_auth_shutdown(void)
   }
   (void) pam_close_session(s_pamh, 0);
   (void) pam_setcred(s_pamh, PAM_DELETE_CRED);
-  (void) pam_end(s_pamh, 0);
+  (void) pam_end(s_pamh, PAM_SUCCESS);
   s_pamh = 0;
   vsf_remove_uwtmp();
 }