diff options
author | Theodore Tso <tytso@mit.edu> | 1995-11-08 08:03:31 +0000 |
---|---|---|
committer | Theodore Tso <tytso@mit.edu> | 1995-11-08 08:03:31 +0000 |
commit | 4bc18b8d9dc28ab51e1eb52891ed3f72cd86fdda (patch) | |
tree | 9f8d98efc345fdb966145d60a036b3e4a023a3e1 /src/kdc/main.c | |
parent | 53bd3c35c2f895d9c766143b19ea293cdb9bcba0 (diff) | |
download | krb5-4bc18b8d9dc28ab51e1eb52891ed3f72cd86fdda.tar.gz krb5-4bc18b8d9dc28ab51e1eb52891ed3f72cd86fdda.tar.xz krb5-4bc18b8d9dc28ab51e1eb52891ed3f72cd86fdda.zip |
* kdc_util.c (): Added new helper functions
dbentry_has_key_for_enctype(), dbentry_supports_enctype(), and
select_session_keytype().
* kdc_preauth.c: Added support for the ENC_TIMESTAMP preauthentication
scheme.
* do_tgs_req.c (process_tgs_req): Fixed the keytype/enctype selection
criteria for the server key, and the ticket session key.
* do_as_req.c (process_as_req): Added calls to the kdc preauthentication
verification routines. Fixed the keytype/enctype selection
criteria for the client key, the server key, and the ticket
session key.
* main.c (finish_realm): Make sure all parts of the realm structure are
freed properly.
(main): Free the kcontext krb5_context.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@7058 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/kdc/main.c')
-rw-r--r-- | src/kdc/main.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/kdc/main.c b/src/kdc/main.c index fa4572c8cb..b698a0fa3a 100644 --- a/src/kdc/main.c +++ b/src/kdc/main.c @@ -254,11 +254,22 @@ finish_realm(rdp) free(rdp->realm_mpname); if (rdp->realm_stash) free(rdp->realm_stash); + if (rdp->realm_ports) + free(rdp->realm_ports); + if (rdp->realm_kstypes) + free(rdp->realm_kstypes); if (rdp->realm_context) { if (rdp->realm_mprinc) krb5_free_principal(rdp->realm_context, rdp->realm_mprinc); - if (rdp->realm_mkey.length && rdp->realm_mkey.contents) - krb5_free_keyblock(rdp->realm_context, &rdp->realm_mkey); + if (rdp->realm_mkey.length && rdp->realm_mkey.contents) { + memset(rdp->realm_mkey.contents, 0, rdp->realm_mkey.length); + free(rdp->realm_mkey.contents); + } + if (rdp->realm_tgskey.length && rdp->realm_tgskey.contents) { + memset(rdp->realm_tgskey.contents, 0, rdp->realm_tgskey.length); + free(rdp->realm_tgskey.contents); + } + krb5_finish_key(rdp->realm_context, &rdp->realm_encblock); krb5_db_fini(rdp->realm_context); if (rdp->realm_tgsprinc) krb5_free_principal(rdp->realm_context, rdp->realm_tgsprinc); @@ -872,6 +883,7 @@ char *argv[]; krb5_klog_syslog(LOG_INFO, "shutting down"); krb5_klog_close(kdc_context); finish_realms(argv[0]); + krb5_free_context(kcontext); return errout; } |