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)
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);
kdc_realmlist[0] = rdatap;
kdc_numrealms++;
}
+ krb5_free_default_realm(kcontext, lrealm);
}
/* Ensure that this is set for our first request. */