aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGreg Hudson <ghudson@mit.edu>2022-06-03 14:38:45 -0400
committerGreg Hudson <ghudson@mit.edu>2022-11-04 12:28:23 -0400
commit782e3cf8e909ff7ad62c3b49e18aaad3e9c65279 (patch)
tree201935f2ca248ae654dbbfd715f90372c6d32d9a
parent1166f1404c47af54f3d5b2533bb001fdadf6aadc (diff)
downloadkrb5-782e3cf8e909ff7ad62c3b49e18aaad3e9c65279.zip
krb5-782e3cf8e909ff7ad62c3b49e18aaad3e9c65279.tar.gz
krb5-782e3cf8e909ff7ad62c3b49e18aaad3e9c65279.tar.bz2
Free verto context later in KDC cleanup
The KDC supplies the verto context to kdcpreauth modules via the loop method (added in commit 83b4ecd20e50ad330cd761977d5dadefe30a785b). This context should remain valid until kdcpreauth modules are unloaded, as modules might refer to it during cleanup. In particular, the OTP module references the verto context when freeing the RADIUS client object (commit e89abc2d4ea1fea1ec28d470f297514b828e4842), which can cause a memory error during KDC shutdown without this change. (cherry picked from commit 8dcace04945723cd6a3c8ea2c1ba467c22eb6584) ticket: 9064 version_fixed: 1.20.1
-rw-r--r--src/kdc/main.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/kdc/main.c b/src/kdc/main.c
index 074680d..38b9299 100644
--- a/src/kdc/main.c
+++ b/src/kdc/main.c
@@ -1041,7 +1041,6 @@ int main(int argc, char **argv)
kau_kdc_start(kcontext, TRUE);
verto_run(ctx);
- loop_free(ctx);
kau_kdc_stop(kcontext, TRUE);
krb5_klog_syslog(LOG_INFO, _("shutting down"));
unload_preauth_plugins(kcontext);
@@ -1055,6 +1054,7 @@ int main(int argc, char **argv)
#ifndef NOCACHE
kdc_free_lookaside(kcontext);
#endif
+ loop_free(ctx);
krb5_free_context(kcontext);
return errout;
}