From b68f0e33486fe7c9821ec73cfc7fe3c28f6fc245 Mon Sep 17 00:00:00 2001 From: Greg Hudson Date: Thu, 8 Apr 2010 16:51:58 +0000 Subject: [PATCH] Use krb5_cc_dup to make a copy of the ccache handle passed to krb5_tkt_creds_init(), so that ccache can be closed before the context is freed. git-svn-id: svn://anonsvn.mit.edu/krb5/branches/iakerb@23876 dc483132-0cff-0310-8789-dd5450dbe970 --- src/lib/krb5/krb/gc_frm_kdc.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/lib/krb5/krb/gc_frm_kdc.c b/src/lib/krb5/krb/gc_frm_kdc.c index c96fde37c3..20853fd162 100644 --- a/src/lib/krb5/krb/gc_frm_kdc.c +++ b/src/lib/krb5/krb/gc_frm_kdc.c @@ -891,8 +891,9 @@ krb5_tkt_creds_init(krb5_context context, krb5_ccache ccache, code = krb5_copy_principal(context, ctx->server, &ctx->req_server); if (code != 0) goto cleanup; - /* XXX Make an alias for now; use krb5_cc_dup later. */ - ctx->ccache = ccache; + code = krb5_cc_dup(context, ccache, &ctx->ccache); + if (code != 0) + goto cleanup; ctx->req_kdcopt = kdcopt; code = krb5_copy_authdata(context, in_creds->authdata, &ctx->authdata); if (code != 0) @@ -944,6 +945,7 @@ krb5_tkt_creds_free(krb5_context context, krb5_tkt_creds_context ctx) if (ctx == NULL) return; krb5_free_creds(context, ctx->in_creds); + krb5_cc_close(context, ctx->ccache); krb5_free_principal(context, ctx->req_server); krb5_free_authdata(context, ctx->authdata); krb5_free_creds(context, ctx->cur_tgt); -- 2.47.2