[krbdev.mit.edu #7947] git commit

Greg Hudson via RT rt-comment at krbdev.mit.edu
Thu Jun 26 11:11:16 EDT 2014


Load plugins with RTLD_NODELETE if possible

On platforms which support RTLD_NODELETE, use it to load plugin
modules.  While using this flag makes plugins stay in the process map
after libkrb5/libgssapi_krb5 are unloaded, it solves several problems:

1. It prevents plugin modules which link against OpenSSL (PKINIT and
k5tls) from repeatedly initializing instances of libssl or libcrypto,
leaking heap memory each time.  This is only an issue because we
cannot safely uninitialize OpenSSL.

2. It prevents finalization ordering issues from causing a process
crash when unloading libgssapi_krb5 (issue #7135).

3. It makes memory leak tracing with valgrind easier.

https://github.com/krb5/krb5/commit/0f46175d632ae03ab7d4cfba5e62534d31e128e0
Author: Greg Hudson <ghudson at mit.edu>
Commit: 0f46175d632ae03ab7d4cfba5e62534d31e128e0
Branch: master
 src/util/support/plugins.c |   19 ++++++++++++++-----
 1 files changed, 14 insertions(+), 5 deletions(-)



More information about the krb5-bugs mailing list