The branch, v3-6-test has been updated
       via  97055ce s3-winbind: Fix bug 7888 -- deal with buggy 3.0 based PDCs
      from  4b094c2 Second part of fix for bug #8219 - SMB Panic from Windows 7 
Client.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-6-test


- Log -----------------------------------------------------------------
commit 97055cee026b4f1b0e2730786a94390f6515593e
Author: Günther Deschner <[email protected]>
Date:   Tue Jun 28 23:59:11 2011 +0200

    s3-winbind: Fix bug 7888 -- deal with buggy 3.0 based PDCs
    
    Guenther
    
    Autobuild-User: Günther Deschner <[email protected]>
    Autobuild-Date: Thu Jun 30 00:42:23 CEST 2011 on sn-devel-104

-----------------------------------------------------------------------

Summary of changes:
 source3/winbindd/winbindd_pam.c |   26 +++++++++++++++++++-------
 1 files changed, 19 insertions(+), 7 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/winbindd/winbindd_pam.c b/source3/winbindd/winbindd_pam.c
index 6b87482..29add8c 100644
--- a/source3/winbindd/winbindd_pam.c
+++ b/source3/winbindd/winbindd_pam.c
@@ -1250,18 +1250,30 @@ static NTSTATUS winbind_samlogon_retry_loop(struct 
winbindd_domain *domain,
                                        info3);
                }
 
-               if (NT_STATUS_EQUAL(result, NT_STATUS_RPC_PROCNUM_OUT_OF_RANGE)
-                   && domain->can_do_samlogon_ex) {
-                       DEBUG(3, ("Got a DC that can not do NetSamLogonEx, "
-                                 "retrying with NetSamLogon\n"));
-                       domain->can_do_samlogon_ex = false;
+               if (NT_STATUS_EQUAL(result, 
NT_STATUS_RPC_PROCNUM_OUT_OF_RANGE)) {
+
                        /*
                         * It's likely that the server also does not support
                         * validation level 6
                         */
                        domain->can_do_validation6 = false;
-                       retry = true;
-                       continue;
+
+                       if (domain->can_do_samlogon_ex) {
+                               DEBUG(3, ("Got a DC that can not do 
NetSamLogonEx, "
+                                         "retrying with NetSamLogon\n"));
+                               domain->can_do_samlogon_ex = false;
+                               retry = true;
+                               continue;
+                       }
+
+
+                       /* Got DCERPC_FAULT_OP_RNG_ERROR for SamLogon
+                        * (no Ex). This happens against old Samba
+                        * DCs. Drop the connection.
+                        */
+                       invalidate_cm_connection(&domain->conn);
+                       result = NT_STATUS_LOGON_FAILURE;
+                       break;
                }
 
                if (domain->can_do_validation6 &&


-- 
Samba Shared Repository

Reply via email to