diff options
author | Ezra Peisach <epeisach@mit.edu> | 2003-01-03 16:28:45 +0000 |
---|---|---|
committer | Ezra Peisach <epeisach@mit.edu> | 2003-01-03 16:28:45 +0000 |
commit | f7de358516d442bd8cb8e9afb880ddeb51922bf5 (patch) | |
tree | 808ee9c5aa7e441817b5af66a1927b286bef8daa /src/kdc/main.c | |
parent | d88ee5d0f84679bc05e28c6e3a80cfb57a947210 (diff) | |
download | krb5-f7de358516d442bd8cb8e9afb880ddeb51922bf5.zip krb5-f7de358516d442bd8cb8e9afb880ddeb51922bf5.tar.gz krb5-f7de358516d442bd8cb8e9afb880ddeb51922bf5.tar.bz2 |
* main.c: On exit, free more allocated memory, including:
realm_tcp_ports data, kdc_realmlist, close the replay cache, and
free the lookaside cache.
* network.c (FREE_SET_DATA): Do not free a NULL pointer.
* replay.c, kdc_util.h: Add kdc_free_lookaside() to clear the lookaside
cache on shutdown - to search for memory leaks.
* rtest.c (main): Do not allocate or free a NULL pointer.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@15080 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/kdc/main.c')
-rw-r--r-- | src/kdc/main.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/kdc/main.c b/src/kdc/main.c index 67be475..c338b53 100644 --- a/src/kdc/main.c +++ b/src/kdc/main.c @@ -119,6 +119,8 @@ finish_realm(kdc_realm_t *rdp) free(rdp->realm_stash); if (rdp->realm_ports) free(rdp->realm_ports); + if (rdp->realm_tcp_ports) + free(rdp->realm_tcp_ports); if (rdp->realm_kstypes) free(rdp->realm_kstypes); if (rdp->realm_keytab) @@ -140,6 +142,7 @@ finish_realm(kdc_realm_t *rdp) krb5_free_context(rdp->realm_context); } memset((char *) rdp, 0, sizeof(*rdp)); + free(rdp); } /* @@ -737,8 +740,10 @@ finish_realms(char *prog) { int i; - for (i = 0; i < kdc_numrealms; i++) + for (i = 0; i < kdc_numrealms; i++) { finish_realm(kdc_realmlist[i]); + kdc_realmlist[i] = 0; + } } /* @@ -837,6 +842,14 @@ int main(int argc, char **argv) krb5_klog_syslog(LOG_INFO, "shutting down"); krb5_klog_close(kdc_context); finish_realms(argv[0]); + if (kdc_realmlist) + free(kdc_realmlist); +#ifdef USE_RCACHE + (void) krb5_rc_close(kdc_context, kdc_rcache); +#endif +#ifndef NOCACHE + kdc_free_lookaside(); +#endif krb5_free_context(kcontext); return errout; } |