[SCM] Samba Shared Repository - branch master updated - tevent-0-9-8-593-g9801ec5

Stefan Metzmacher metze at samba.org
Sun Sep 20 22:36:52 MDT 2009


The branch, master has been updated
       via  9801ec5f1af8f3f67461fa09e29213bea06b1c6a (commit)
      from  83edf3e43e86781872a07d8eb53084f59ad7384c (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 9801ec5f1af8f3f67461fa09e29213bea06b1c6a
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Sep 21 06:26:30 2009 +0200

    s3:secrets_schannel: revert to using version 1
    
    It doesn't really matter if the entries
    have invalid context in it. Older versions of samba
    refuse to open the file if the version doesn't match.
    
    If we can't parse individual records, we'll fail schannel binds,
    but the clients are supposed to reestablish the netlogon secure channel
    by doing ServerReqChallenge/ServerAuthenticate* again. This
    will just overwrite the old record.
    
    metze

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

Summary of changes:
 source3/passdb/secrets.c |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/passdb/secrets.c b/source3/passdb/secrets.c
index 0e66e3c..36f401b 100644
--- a/source3/passdb/secrets.c
+++ b/source3/passdb/secrets.c
@@ -1135,8 +1135,8 @@ void secrets_fetch_ipc_userpass(char **username, char **domain, char **password)
 *******************************************************************************/
 
 #define SCHANNEL_STORE_VERSION_1 1
-#define SCHANNEL_STORE_VERSION_2 2
-#define SCHANNEL_STORE_VERSION_CURRENT SCHANNEL_STORE_VERSION_2
+#define SCHANNEL_STORE_VERSION_2 2 /* should not be used */
+#define SCHANNEL_STORE_VERSION_CURRENT SCHANNEL_STORE_VERSION_1
 
 TDB_CONTEXT *open_schannel_session_store(TALLOC_CTX *mem_ctx)
 {
@@ -1168,12 +1168,18 @@ TDB_CONTEXT *open_schannel_session_store(TALLOC_CTX *mem_ctx)
 		vers.dptr = NULL;
 	} else if (vers.dsize == 4) {
 		ver = IVAL(vers.dptr,0);
-		if (ver != SCHANNEL_STORE_VERSION_CURRENT) {
+		if (ver == SCHANNEL_STORE_VERSION_2) {
 			DEBUG(0,("open_schannel_session_store: wrong version number %d in %s\n",
 				(int)ver, fname ));
 			tdb_wipe_all(tdb_sc);
 			goto again;
 		}
+		if (ver != SCHANNEL_STORE_VERSION_CURRENT) {
+			DEBUG(0,("open_schannel_session_store: wrong version number %d in %s\n",
+				(int)ver, fname ));
+			tdb_close(tdb_sc);
+			tdb_sc = NULL;
+		}
 	} else {
 		tdb_close(tdb_sc);
 		tdb_sc = NULL;


-- 
Samba Shared Repository


More information about the samba-cvs mailing list