summaryrefslogtreecommitdiff
path: root/source3/libads/kerberos.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2004-10-30 00:34:58 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 10:53:05 -0500
commitcf47845b1c2e83d49f32bdfc455cd9114a234df8 (patch)
treeabfc04e577412b5d87bb353c0de9a2367affa1c3 /source3/libads/kerberos.c
parent0772ddbae1be394c538f1d3529ea84434eadcf97 (diff)
downloadsamba-cf47845b1c2e83d49f32bdfc455cd9114a234df8.tar.gz
samba-cf47845b1c2e83d49f32bdfc455cd9114a234df8.tar.bz2
samba-cf47845b1c2e83d49f32bdfc455cd9114a234df8.zip
r3379: More merging of kerberos keytab and salting fixes from Nalin Dahyabhai <nalin@redhat.com>
(bugid #1717). Jeremy. (This used to be commit 30b8807cf6d5c3c5b9947a7e841d69f0b22eb019)
Diffstat (limited to 'source3/libads/kerberos.c')
-rw-r--r--source3/libads/kerberos.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/source3/libads/kerberos.c b/source3/libads/kerberos.c
index 9eb4d9da46..dc1edb3cde 100644
--- a/source3/libads/kerberos.c
+++ b/source3/libads/kerberos.c
@@ -608,6 +608,17 @@ void kerberos_derive_salting_principal(krb5_context context,
char *service_principal)
{
int i;
+ BOOL free_ccache = False;
+
+ if (ccache == NULL) {
+ krb5_error_code ret;
+ if ((ret = krb5_cc_resolve(context, LIBADS_CCACHE_NAME, &ccache)) != 0) {
+ DEBUG(0, ("kerberos_derive_salting_principal: krb5_cc_resolve for %s failed: %s\n",
+ LIBADS_CCACHE_NAME, error_message(ret)));
+ return;
+ }
+ free_ccache = True;
+ }
/* Try for each enctype separately, because the rules are
* different for different enctypes. */
@@ -629,6 +640,10 @@ void kerberos_derive_salting_principal(krb5_context context,
enctypes[i],
enctypes);
}
+
+ if (free_ccache && ccache) {
+ krb5_cc_close(context, ccache);
+ }
}
/************************************************************************