Apply patch from Nalin Dahyabhai to correctly handle delegated
authorTom Yu <tlyu@mit.edu>
Wed, 3 Oct 2007 00:17:27 +0000 (00:17 +0000)
committerTom Yu <tlyu@mit.edu>
Wed, 3 Oct 2007 00:17:27 +0000 (00:17 +0000)
credentials if ret_flags is null.

ticket: 5802
target_version: 1.6.3
tags: pullup

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@20082 dc483132-0cff-0310-8789-dd5450dbe970

src/lib/gssapi/mechglue/g_accept_sec_context.c

index 9b5562967460f65a98ac6265c3c64f60e3535aad..0d7155688d57ad224c97844907a789d2d7bb5fb0 100644 (file)
@@ -112,6 +112,7 @@ gss_cred_id_t *             d_cred;
 
 {
     OM_uint32          status, temp_status, temp_minor_status;
+    OM_uint32          temp_ret_flags = 0;
     gss_union_ctx_id_t union_ctx_id;
     gss_union_cred_t   union_cred;
     gss_cred_id_t      input_cred_handle = GSS_C_NO_CREDENTIAL;
@@ -202,7 +203,7 @@ gss_cred_id_t *             d_cred;
                                                  &internal_name,
                                                  mech_type,
                                                  output_token,
-                                                 ret_flags,
+                                                 &temp_ret_flags,
                                                  time_rec,
                                        d_cred ? &tmp_d_cred : NULL);
 
@@ -248,7 +249,7 @@ gss_cred_id_t *             d_cred;
            }
 
            /* Ensure we're returning correct creds format */
-           if ((ret_flags && GSS_C_DELEG_FLAG) &&
+           if ((temp_ret_flags & GSS_C_DELEG_FLAG) &&
                tmp_d_cred != GSS_C_NO_CREDENTIAL) {
                gss_union_cred_t d_u_cred = NULL;
 
@@ -335,6 +336,8 @@ gss_cred_id_t *             d_cred;
            if (src_name == NULL && tmp_src_name != NULL)
                (void) gss_release_name(&temp_minor_status,
                                        &tmp_src_name);
+           if (ret_flags != NULL)
+               *ret_flags = temp_ret_flags;
            return      (status);
     } else {