diff options
-rw-r--r-- | src/lib/gssapi/krb5/acquire_cred.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/lib/gssapi/krb5/acquire_cred.c b/src/lib/gssapi/krb5/acquire_cred.c index 8bdf7c4..a8199c5 100644 --- a/src/lib/gssapi/krb5/acquire_cred.c +++ b/src/lib/gssapi/krb5/acquire_cred.c @@ -836,8 +836,12 @@ krb_error_out: error_out: if (cred != NULL) { - if (cred->ccache) - krb5_cc_close(context, cred->ccache); + if (cred->ccache) { + if (cred->destroy_ccache) + krb5_cc_destroy(context, cred->ccache); + else + krb5_cc_close(context, cred->ccache); + } if (cred->client_keytab) krb5_kt_close(context, cred->client_keytab); #ifndef LEAN_CLIENT @@ -848,6 +852,8 @@ error_out: krb5_rc_close(context, cred->rcache); if (cred->name) kg_release_name(context, &cred->name); + krb5_free_principal(context, cred->impersonator); + zapfreestr(cred->password); k5_mutex_destroy(&cred->lock); xfree(cred); } |