[krbdev.mit.edu #6945] spnego_gss_acquire_cred_impersonate_name incorrect usage of impersonator_cred_handle

Arlene Berry via RT rt-comment at krbdev.mit.edu
Thu Aug 11 11:15:42 EDT 2011


In src/lib/gssapi/spnego/spnego_mech.c for spnego_gss_acquire_cred it has:

OM_uint32
spnego_gss_acquire_cred_impersonate_name(OM_uint32 *minor_status,
                                         const gss_cred_id_t impersonator_cred_handle,
                                         const gss_name_t desired_name,
                                         OM_uint32 time_req,
                                         gss_OID_set desired_mechs,
                                         gss_cred_usage_t cred_usage,
                                         gss_cred_id_t *output_cred_handle,
                                         gss_OID_set *actual_mechs,
                                         OM_uint32 *time_rec)

...

        if (desired_mechs == GSS_C_NO_OID_SET) {
                status = gss_inquire_cred(minor_status,
                                          impersonator_cred_handle,
                                          NULL, NULL,
                                          NULL, &amechs);
                desired_mechs = amechs;
        }

        imp_spcred = (spnego_gss_cred_id_t)impersonator_cred_handle;

impersonator_cred_handle is a mechanism cred, i.e. an spnego_cred_id_t, not a gss_cred_id_t, and you cannot call gss_inquire_cred on it.  The assignment to imp_spcred needs to be moved up and gss_inquire_cred needs to be called on imp_spcred->mcred in the same manner as the subsequent gss_acquire_cred_impersonate_name.  





More information about the krb5-bugs mailing list