]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
Use krb5_cc_dup to make a copy of the ccache handle passed to
authorGreg Hudson <ghudson@mit.edu>
Thu, 8 Apr 2010 16:51:58 +0000 (16:51 +0000)
committerGreg Hudson <ghudson@mit.edu>
Thu, 8 Apr 2010 16:51:58 +0000 (16:51 +0000)
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

index c96fde37c3f6c28af6fdc80ef578d5cd78dab265..20853fd162d177d87b38ec8c456f2a8cae277635 100644 (file)
@@ -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);