summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTom Yu <tlyu@mit.edu>1999-04-30 04:09:15 +0000
committerTom Yu <tlyu@mit.edu>1999-04-30 04:09:15 +0000
commitc44c39734e3d53a7abf79ffb0f09bf4ea7bf13cd (patch)
tree84e87a39fe26319f1e1f0cff6ee52e1d533c16d3 /src
parentf26b3043cc41e814877cdbfb36eaa22b68806c3e (diff)
downloadkrb5-c44c39734e3d53a7abf79ffb0f09bf4ea7bf13cd.tar.gz
krb5-c44c39734e3d53a7abf79ffb0f09bf4ea7bf13cd.tar.xz
krb5-c44c39734e3d53a7abf79ffb0f09bf4ea7bf13cd.zip
* kerberos_v4.c (kerberos_v4): Fix bug where krb_create_ticket()
was getting called for an APPL_REQUEST even when there was no single-DES key, resulting in random weirdness. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@11412 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
-rw-r--r--src/kdc/ChangeLog6
-rw-r--r--src/kdc/kerberos_v4.c21
2 files changed, 22 insertions, 5 deletions
diff --git a/src/kdc/ChangeLog b/src/kdc/ChangeLog
index 398b55e47..f05b0d796 100644
--- a/src/kdc/ChangeLog
+++ b/src/kdc/ChangeLog
@@ -1,3 +1,9 @@
+Fri Apr 30 00:05:07 1999 Tom Yu <tlyu@mit.edu>
+
+ * kerberos_v4.c (kerberos_v4): Fix bug where krb_create_ticket()
+ was getting called for an APPL_REQUEST even when there was no
+ single-DES key, resulting in random weirdness.
+
Wed Feb 17 17:07:43 1999 Tom Yu <tlyu@mit.edu>
* do_as_req.c (process_as_req): Fix to assign kvno to
diff --git a/src/kdc/kerberos_v4.c b/src/kdc/kerberos_v4.c
index a1efd8b37..4dbd4252c 100644
--- a/src/kdc/kerberos_v4.c
+++ b/src/kdc/kerberos_v4.c
@@ -885,11 +885,22 @@ kerberos_v4(client, pkt)
des_new_random_key(session_key);
#endif
- krb_create_ticket(tk, k_flags, ad->pname, ad->pinst,
- ad->prealm, client_host.s_addr,
- (char *) session_key, lifetime, kerb_time.tv_sec,
- s_name_data.name, s_name_data.instance,
- key);
+ if (K4KDC_ENCTYPE_OK(k5key.enctype)) {
+ krb_create_ticket(tk, k_flags, ad->pname, ad->pinst,
+ ad->prealm, client_host.s_addr,
+ (char *) session_key, lifetime,
+ kerb_time.tv_sec,
+ s_name_data.name, s_name_data.instance,
+ key);
+ } else {
+ krb_cr_tkt_krb5(tk, k_flags, ad->pname, ad->pinst,
+ ad->prealm, client_host.s_addr,
+ (char *) session_key, lifetime,
+ kerb_time.tv_sec,
+ s_name_data.name, s_name_data.instance,
+ &k5key);
+ }
+ krb5_free_keyblock_contents(kdc_context, &k5key);
memset(key, 0, sizeof(key));
memset(key_s, 0, sizeof(key_s));