diff options
author | Jeremy Allison <jra@samba.org> | 2004-10-30 00:34:58 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 10:53:05 -0500 |
commit | cf47845b1c2e83d49f32bdfc455cd9114a234df8 (patch) | |
tree | abfc04e577412b5d87bb353c0de9a2367affa1c3 /source3/libads/kerberos.c | |
parent | 0772ddbae1be394c538f1d3529ea84434eadcf97 (diff) | |
download | samba-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.c | 15 |
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); + } } /************************************************************************ |