[SCM] Samba Shared Repository - branch v3-2-test updated - initial-v3-2-unstable-1301-g0599d57

Jeremy Allison jra at samba.org
Sat Jan 12 08:05:55 GMT 2008


The branch, v3-2-test has been updated
       via  0599d57efff0f417f75510e8b08c3cb7b4bcfcd8 (commit)
      from  1b7cc80c61ccbf766801080f5a3f0260f40ccc17 (commit)

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


- Log -----------------------------------------------------------------
commit 0599d57efff0f417f75510e8b08c3cb7b4bcfcd8
Author: Jeremy Allison <jra at samba.org>
Date:   Fri Jan 11 23:53:27 2008 -0800

    Fix CID 476. Ensure a valid pac_data pointer is always passed to
    ads_verify_ticket as it's always derefed.
    Jeremy.

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

Summary of changes:
 source/libads/kerberos_verify.c |    3 +--
 source/smbd/sesssetup.c         |    3 +--
 source/utils/ntlm_auth.c        |    3 ++-
 3 files changed, 4 insertions(+), 5 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/libads/kerberos_verify.c b/source/libads/kerberos_verify.c
index 7040093..5ce7aa6 100644
--- a/source/libads/kerberos_verify.c
+++ b/source/libads/kerberos_verify.c
@@ -501,8 +501,7 @@ NTSTATUS ads_verify_ticket(TALLOC_CTX *mem_ctx,
 		DEBUG(3,("ads_verify_ticket: did not retrieve auth data. continuing without PAC\n"));
 	}
 
-	if (got_auth_data && pac_data != NULL) {
-
+	if (got_auth_data) {
 		pac_ret = decode_pac_data(mem_ctx, &auth_data, context, keyblock, client_principal, authtime, pac_data);
 		if (!NT_STATUS_IS_OK(pac_ret)) {
 			DEBUG(3,("ads_verify_ticket: failed to decode PAC_DATA: %s\n", nt_errstr(pac_ret)));
diff --git a/source/smbd/sesssetup.c b/source/smbd/sesssetup.c
index bc1d26f..aee8e49 100644
--- a/source/smbd/sesssetup.c
+++ b/source/smbd/sesssetup.c
@@ -259,7 +259,7 @@ static void reply_spnego_kerberos(struct smb_request *req,
 	fstring user;
 	int sess_vuid = req->vuid;
 	NTSTATUS ret = NT_STATUS_OK;
-	PAC_DATA *pac_data;
+	PAC_DATA *pac_data = NULL;
 	DATA_BLOB ap_rep, ap_rep_wrapped, response;
 	auth_serversupplied_info *server_info = NULL;
 	DATA_BLOB session_key = data_blob_null;
@@ -271,7 +271,6 @@ static void reply_spnego_kerberos(struct smb_request *req,
 	PAC_LOGON_INFO *logon_info = NULL;
 
 	ZERO_STRUCT(ticket);
-	ZERO_STRUCT(pac_data);
 	ZERO_STRUCT(ap_rep);
 	ZERO_STRUCT(ap_rep_wrapped);
 	ZERO_STRUCT(response);
diff --git a/source/utils/ntlm_auth.c b/source/utils/ntlm_auth.c
index 7e2771c..6a702fc 100644
--- a/source/utils/ntlm_auth.c
+++ b/source/utils/ntlm_auth.c
@@ -1163,6 +1163,7 @@ static void manage_gss_spnego_request(enum stdio_helper_mode stdio_helper_mode,
 			char *principal;
 			DATA_BLOB ap_rep;
 			DATA_BLOB session_key;
+			PAC_DATA *pac_data = NULL;
 
 			if ( request.negTokenInit.mechToken.data == NULL ) {
 				DEBUG(1, ("Client did not provide Kerberos data\n"));
@@ -1177,7 +1178,7 @@ static void manage_gss_spnego_request(enum stdio_helper_mode stdio_helper_mode,
 
 			status = ads_verify_ticket(mem_ctx, lp_realm(), 0,
 						   &request.negTokenInit.mechToken,
-						   &principal, NULL, &ap_rep,
+						   &principal, &pac_data, &ap_rep,
 						   &session_key, True);
 
 			talloc_destroy(mem_ctx);


-- 
Samba Shared Repository


More information about the samba-cvs mailing list