(gss_release_cred): if its a mcc, destroy it rather the just release it
Found by: "Zi-Bin Yang" <zbyang@decru.com> git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@12977 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -54,8 +54,14 @@ OM_uint32 gss_release_cred
|
||||
krb5_free_principal(gssapi_krb5_context, (*cred_handle)->principal);
|
||||
if ((*cred_handle)->keytab != NULL)
|
||||
krb5_kt_close(gssapi_krb5_context, (*cred_handle)->keytab);
|
||||
if ((*cred_handle)->ccache != NULL)
|
||||
krb5_cc_close(gssapi_krb5_context, (*cred_handle)->ccache);
|
||||
if ((*cred_handle)->ccache != NULL) {
|
||||
const krb5_cc_ops *ops;
|
||||
ops = krb5_cc_get_ops(gssapi_krb5_context, (*cred_handle)->ccache);
|
||||
if (ops == &krb5_mcc_ops)
|
||||
krb5_cc_destroy(gssapi_krb5_context, (*cred_handle)->ccache);
|
||||
else
|
||||
krb5_cc_close(gssapi_krb5_context, (*cred_handle)->ccache);
|
||||
}
|
||||
gss_release_oid_set(NULL, &(*cred_handle)->mechanisms);
|
||||
HEIMDAL_MUTEX_unlock(&(*cred_handle)->cred_id_mutex);
|
||||
HEIMDAL_MUTEX_destroy(&(*cred_handle)->cred_id_mutex);
|
||||
|
@@ -54,8 +54,14 @@ OM_uint32 gss_release_cred
|
||||
krb5_free_principal(gssapi_krb5_context, (*cred_handle)->principal);
|
||||
if ((*cred_handle)->keytab != NULL)
|
||||
krb5_kt_close(gssapi_krb5_context, (*cred_handle)->keytab);
|
||||
if ((*cred_handle)->ccache != NULL)
|
||||
krb5_cc_close(gssapi_krb5_context, (*cred_handle)->ccache);
|
||||
if ((*cred_handle)->ccache != NULL) {
|
||||
const krb5_cc_ops *ops;
|
||||
ops = krb5_cc_get_ops(gssapi_krb5_context, (*cred_handle)->ccache);
|
||||
if (ops == &krb5_mcc_ops)
|
||||
krb5_cc_destroy(gssapi_krb5_context, (*cred_handle)->ccache);
|
||||
else
|
||||
krb5_cc_close(gssapi_krb5_context, (*cred_handle)->ccache);
|
||||
}
|
||||
gss_release_oid_set(NULL, &(*cred_handle)->mechanisms);
|
||||
HEIMDAL_MUTEX_unlock(&(*cred_handle)->cred_id_mutex);
|
||||
HEIMDAL_MUTEX_destroy(&(*cred_handle)->cred_id_mutex);
|
||||
|
Reference in New Issue
Block a user