diff options
| author | Tom Yu <tlyu@mit.edu> | 1999-04-30 04:09:15 +0000 |
|---|---|---|
| committer | Tom Yu <tlyu@mit.edu> | 1999-04-30 04:09:15 +0000 |
| commit | c44c39734e3d53a7abf79ffb0f09bf4ea7bf13cd (patch) | |
| tree | 84e87a39fe26319f1e1f0cff6ee52e1d533c16d3 | |
| parent | f26b3043cc41e814877cdbfb36eaa22b68806c3e (diff) | |
| download | krb5-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
| -rw-r--r-- | src/kdc/ChangeLog | 6 | ||||
| -rw-r--r-- | src/kdc/kerberos_v4.c | 21 |
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)); |
