[SCM] Samba Shared Repository - branch v4-0-test updated - release-4-0-0alpha4-103-gf573c1f

Stefan Metzmacher metze at samba.org
Thu Jun 19 12:01:28 GMT 2008


The branch, v4-0-test has been updated
       via  f573c1ff4443f3002c310d3ba29d8c343ad03907 (commit)
      from  5fb5a4e13db3a03da414876efa717c3de44ca77c (commit)

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


- Log -----------------------------------------------------------------
commit f573c1ff4443f3002c310d3ba29d8c343ad03907
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Jun 11 07:59:20 2008 +0200

    credentials: set GSS_KRB5_CRED_NO_CI_FLAGS_X to avoid GSS_C_CONF_FLAG and GSS_C_INTEG_FLAG
    
    metze

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

Summary of changes:
 source/auth/credentials/credentials_krb5.c |   27 +++++++++++++++++++++------
 1 files changed, 21 insertions(+), 6 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/auth/credentials/credentials_krb5.c b/source/auth/credentials/credentials_krb5.c
index 3bc1764..b9207ab 100644
--- a/source/auth/credentials/credentials_krb5.c
+++ b/source/auth/credentials/credentials_krb5.c
@@ -379,19 +379,34 @@ _PUBLIC_ int cli_credentials_get_client_gss_creds(struct cli_credentials *cred,
 	maj_stat = gss_krb5_import_cred(&min_stat, ccache->ccache, NULL, NULL, 
 					&gcc->creds);
 	if (maj_stat) {
+		talloc_free(gcc);
 		if (min_stat) {
 			ret = min_stat;
 		} else {
 			ret = EINVAL;
 		}
+		return ret;
 	}
-	if (ret == 0) {
-		cred->client_gss_creds_obtained = cred->ccache_obtained;
-		talloc_set_destructor(gcc, free_gssapi_creds);
-		cred->client_gss_creds = gcc;
-		*_gcc = gcc;
+
+	/* don't force GSS_C_CONF_FLAG and GSS_C_INTEG_FLAG */
+	maj_stat = gss_set_cred_option(&min_stat, gcc->creds,
+				       GSS_KRB5_CRED_NO_CI_FLAGS_X,
+				       GSS_C_NO_BUFFER);
+	if (maj_stat) {
+		talloc_free(gcc);
+		if (min_stat) {
+			ret = min_stat;
+		} else {
+			ret = EINVAL;
+		}
+		return ret;
 	}
-	return ret;
+
+	cred->client_gss_creds_obtained = cred->ccache_obtained;
+	talloc_set_destructor(gcc, free_gssapi_creds);
+	cred->client_gss_creds = gcc;
+	*_gcc = gcc;
+	return 0;
 }
 
 /**


-- 
Samba Shared Repository


More information about the samba-cvs mailing list