[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha8-262-g6dd6ccb

Andrew Bartlett abartlet at samba.org
Tue Jul 7 03:30:00 GMT 2009


The branch, master has been updated
       via  6dd6ccbdc9451678180e0346780b0a5bf9cda229 (commit)
      from  431e63cd8bfff6f67b6e6595ee5a054877709c0d (commit)

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


- Log -----------------------------------------------------------------
commit 6dd6ccbdc9451678180e0346780b0a5bf9cda229
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Jul 7 13:27:47 2009 +1000

    s4:auth It is easier to copy the session key than get talloc right.
    
    The session keys as supplied already have a reference on them, so
    stealing them creates challenges.  For 16 bytes, it is just easier to
    be consistant and copy them.
    
    Andrew Bartlett

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

Summary of changes:
 source4/auth/ntlmssp/ntlmssp_server.c |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source4/auth/ntlmssp/ntlmssp_server.c b/source4/auth/ntlmssp/ntlmssp_server.c
index 28169d9..8cb2b1f 100644
--- a/source4/auth/ntlmssp/ntlmssp_server.c
+++ b/source4/auth/ntlmssp/ntlmssp_server.c
@@ -457,8 +457,7 @@ static NTSTATUS ntlmssp_server_postauth(struct gensec_security *gensec_security,
 		}
 
 	} else if (user_session_key && user_session_key->data) {
-		session_key = *user_session_key;
-		talloc_steal(gensec_ntlmssp_state, session_key.data);
+		session_key = data_blob_talloc(gensec_ntlmssp_state, user_session_key->data, user_session_key->length);
 		DEBUG(10,("ntlmssp_server_auth: Using unmodified nt session key.\n"));
 		dump_data_pw("unmodified session key:\n", session_key.data, session_key.length);
 
@@ -467,8 +466,7 @@ static NTSTATUS ntlmssp_server_postauth(struct gensec_security *gensec_security,
 
 	} else if (lm_session_key && lm_session_key->data) {
 		/* Very weird to have LM key, but no user session key, but anyway.. */
-		session_key = *lm_session_key;
-		talloc_steal(gensec_ntlmssp_state, session_key.data);
+		session_key = data_blob_talloc(gensec_ntlmssp_state, lm_session_key->data, lm_session_key->length);
 		DEBUG(10,("ntlmssp_server_auth: Using unmodified lm session key.\n"));
 		dump_data_pw("unmodified session key:\n", session_key.data, session_key.length);
 
@@ -508,6 +506,7 @@ static NTSTATUS ntlmssp_server_postauth(struct gensec_security *gensec_security,
 								      gensec_ntlmssp_state->encrypted_session_key.length);
 			dump_data_pw("KEY_EXCH session key:\n", gensec_ntlmssp_state->encrypted_session_key.data, 
 				     gensec_ntlmssp_state->encrypted_session_key.length);
+			talloc_free(session_key.data);
 		}
 	} else {
 		gensec_ntlmssp_state->session_key = session_key;


-- 
Samba Shared Repository


More information about the samba-cvs mailing list