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 <[EMAIL PROTECTED]>
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

Reply via email to