diff options
author | Greg Hudson <ghudson@mit.edu> | 2011-03-17 22:08:22 +0000 |
---|---|---|
committer | Greg Hudson <ghudson@mit.edu> | 2011-03-17 22:08:22 +0000 |
commit | c2edcfc6afcdc27a007806d48707f6709418eabc (patch) | |
tree | 447353a786346619830d914891907660dd02816d /src | |
parent | b5d9f6e92ac9291c6f352a2d86b4b0bf9f74fc1f (diff) | |
download | krb5-c2edcfc6afcdc27a007806d48707f6709418eabc.tar.gz krb5-c2edcfc6afcdc27a007806d48707f6709418eabc.tar.xz krb5-c2edcfc6afcdc27a007806d48707f6709418eabc.zip |
Don't leak the default realm name when initializing the default realm
in the KDC.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@24723 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
-rw-r--r-- | src/kdc/main.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/kdc/main.c b/src/kdc/main.c index 7979031e5..d58298d80 100644 --- a/src/kdc/main.c +++ b/src/kdc/main.c @@ -162,6 +162,8 @@ setup_server_realm(krb5_principal sprinc) static void finish_realm(kdc_realm_t *rdp) { + if (rdp->realm_name) + free(rdp->realm_name); if (rdp->realm_mpname) free(rdp->realm_mpname); if (rdp->realm_stash) @@ -290,7 +292,11 @@ init_realm(kdc_realm_t *rdp, char *realm, char *def_mpname, goto whoops; } - rdp->realm_name = realm; + rdp->realm_name = strdup(realm); + if (rdp->realm_name == NULL) { + kret = ENOMEM; + goto whoops; + } kret = krb5int_init_context_kdc(&rdp->realm_context); if (kret) { kdc_err(NULL, kret, "while getting context for realm %s", realm); @@ -863,6 +869,7 @@ initialize_realms(krb5_context kcontext, int argc, char **argv) kdc_realmlist[0] = rdatap; kdc_numrealms++; } + krb5_free_default_realm(kcontext, lrealm); } /* Ensure that this is set for our first request. */ |