aboutsummaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorGreg Hudson <ghudson@mit.edu>2009-11-26 23:23:11 +0000
committerGreg Hudson <ghudson@mit.edu>2009-11-26 23:23:11 +0000
commit1df0550c374c42b6493dc2f0e563a09c03b66968 (patch)
tree6da2d9c5057b9ce2644196327d5c673b4aa96baf /src/lib
parentad2adb977e00181627be7c9a4980b4015fd58fa6 (diff)
downloadkrb5-1df0550c374c42b6493dc2f0e563a09c03b66968.zip
krb5-1df0550c374c42b6493dc2f0e563a09c03b66968.tar.gz
krb5-1df0550c374c42b6493dc2f0e563a09c03b66968.tar.bz2
Clean up a few cases where krb5_get_in_tkt_with_keytab would leak the
options structure. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@23363 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/krb5/krb/gic_keytab.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/lib/krb5/krb/gic_keytab.c b/src/lib/krb5/krb/gic_keytab.c
index 4bdf9ee..c4c6d32 100644
--- a/src/lib/krb5/krb/gic_keytab.c
+++ b/src/lib/krb5/krb/gic_keytab.c
@@ -186,7 +186,7 @@ krb5_get_in_tkt_with_keytab(krb5_context context, krb5_flags options,
if (arg_keytab == NULL) {
retval = krb5_kt_default(context, &keytab);
if (retval)
- return retval;
+ goto cleanup;
}
else keytab = arg_keytab;
@@ -201,7 +201,6 @@ krb5_get_in_tkt_with_keytab(krb5_context context, krb5_flags options,
get_as_key_keytab, (void *)keytab,
&use_master, ret_as_reply);
krb5_free_unparsed_name( context, server);
- krb5_get_init_creds_opt_free(context, opts);
if (retval) {
goto cleanup;
}
@@ -214,7 +213,9 @@ krb5_get_in_tkt_with_keytab(krb5_context context, krb5_flags options,
if (ccache)
if ((retval = krb5_cc_store_cred(context, ccache, creds)))
goto cleanup;
-cleanup: if (arg_keytab == NULL)
+cleanup:
+ krb5_get_init_creds_opt_free(context, opts);
+ if (arg_keytab == NULL)
krb5_kt_close(context, keytab);
return retval;
}