Author: gd
Date: 2007-08-20 12:45:09 +0000 (Mon, 20 Aug 2007)
New Revision: 24579

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=24579

Log:
Merge error reporting to the end of winbindd_pam_auth().

Guenther

Modified:
   branches/SAMBA_3_2/source/nsswitch/winbindd_pam.c
   branches/SAMBA_3_2_0/source/nsswitch/winbindd_pam.c


Changeset:
Modified: branches/SAMBA_3_2/source/nsswitch/winbindd_pam.c
===================================================================
--- branches/SAMBA_3_2/source/nsswitch/winbindd_pam.c   2007-08-20 12:29:07 UTC 
(rev 24578)
+++ branches/SAMBA_3_2/source/nsswitch/winbindd_pam.c   2007-08-20 12:45:09 UTC 
(rev 24579)
@@ -583,6 +583,7 @@
 {
        struct winbindd_domain *domain;
        fstring name_domain, name_user;
+       NTSTATUS result;
 
        /* Ensure null termination */
        state->request.data.auth.user
@@ -601,30 +602,27 @@
 
        if (!canonicalize_username(state->request.data.auth.user,
                               name_domain, name_user)) {
-               set_auth_errors(&state->response, NT_STATUS_NO_SUCH_USER);
-               DEBUG(5, ("Plain text authentication for %s returned %s "
-                         "(PAM: %d)\n",
-                         state->request.data.auth.user, 
-                         state->response.data.auth.nt_status_string,
-                         state->response.data.auth.pam_error));
-               request_error(state);
-               return;
+               result = NT_STATUS_NO_SUCH_USER;
+               goto done;
        }
 
        domain = find_auth_domain(state, name_domain);
 
        if (domain == NULL) {
-               set_auth_errors(&state->response, NT_STATUS_NO_SUCH_USER);
-               DEBUG(5, ("Plain text authentication for %s returned %s "
-                         "(PAM: %d)\n",
-                         state->request.data.auth.user, 
-                         state->response.data.auth.nt_status_string,
-                         state->response.data.auth.pam_error));
-               request_error(state);
-               return;
+               result = NT_STATUS_NO_SUCH_USER;
+               goto done;
        }
 
        sendto_domain(state, domain);
+       return;
+ done:
+       set_auth_errors(&state->response, result);
+       DEBUG(5, ("Plain text authentication for %s returned %s "
+                 "(PAM: %d)\n",
+                 state->request.data.auth.user,
+                 state->response.data.auth.nt_status_string,
+                 state->response.data.auth.pam_error));
+       request_error(state);
 }
 
 NTSTATUS winbindd_dual_pam_auth_cached(struct winbindd_domain *domain,

Modified: branches/SAMBA_3_2_0/source/nsswitch/winbindd_pam.c
===================================================================
--- branches/SAMBA_3_2_0/source/nsswitch/winbindd_pam.c 2007-08-20 12:29:07 UTC 
(rev 24578)
+++ branches/SAMBA_3_2_0/source/nsswitch/winbindd_pam.c 2007-08-20 12:45:09 UTC 
(rev 24579)
@@ -583,6 +583,7 @@
 {
        struct winbindd_domain *domain;
        fstring name_domain, name_user;
+       NTSTATUS result;
 
        /* Ensure null termination */
        state->request.data.auth.user
@@ -601,30 +602,27 @@
 
        if (!canonicalize_username(state->request.data.auth.user,
                               name_domain, name_user)) {
-               set_auth_errors(&state->response, NT_STATUS_NO_SUCH_USER);
-               DEBUG(5, ("Plain text authentication for %s returned %s "
-                         "(PAM: %d)\n",
-                         state->request.data.auth.user, 
-                         state->response.data.auth.nt_status_string,
-                         state->response.data.auth.pam_error));
-               request_error(state);
-               return;
+               result = NT_STATUS_NO_SUCH_USER;
+               goto done;
        }
 
        domain = find_auth_domain(state, name_domain);
 
        if (domain == NULL) {
-               set_auth_errors(&state->response, NT_STATUS_NO_SUCH_USER);
-               DEBUG(5, ("Plain text authentication for %s returned %s "
-                         "(PAM: %d)\n",
-                         state->request.data.auth.user, 
-                         state->response.data.auth.nt_status_string,
-                         state->response.data.auth.pam_error));
-               request_error(state);
-               return;
+               result = NT_STATUS_NO_SUCH_USER;
+               goto done;
        }
 
        sendto_domain(state, domain);
+       return;
+ done:
+       set_auth_errors(&state->response, result);
+       DEBUG(5, ("Plain text authentication for %s returned %s "
+                 "(PAM: %d)\n",
+                 state->request.data.auth.user,
+                 state->response.data.auth.nt_status_string,
+                 state->response.data.auth.pam_error));
+       request_error(state);
 }
 
 NTSTATUS winbindd_dual_pam_auth_cached(struct winbindd_domain *domain,

Reply via email to