aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon/daemon.c
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2011-12-15 12:20:09 +0100
committerTobias Brunner <tobias@strongswan.org>2011-12-15 12:20:09 +0100
commita5951a2861970411b0e29ea1be0483e94019aa4f (patch)
treeeae3281d5c0bb4f7d06abe4d21faf920b073bae7 /src/libcharon/daemon.c
parent49b44c98c129633f596629c0d8a940dada0d4c4d (diff)
downloadstrongswan-a5951a2861970411b0e29ea1be0483e94019aa4f.tar.bz2
strongswan-a5951a2861970411b0e29ea1be0483e94019aa4f.tar.xz
Make sure the certificate cache is flushed when plugins are unloaded.
This avoids segmentation faults when plugins implementing cert_t are already unloaded when the cache is flushed during destruction.
Diffstat (limited to 'src/libcharon/daemon.c')
-rw-r--r--src/libcharon/daemon.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/libcharon/daemon.c b/src/libcharon/daemon.c
index b8dc52a60..5b79aa303 100644
--- a/src/libcharon/daemon.c
+++ b/src/libcharon/daemon.c
@@ -115,6 +115,8 @@ static void destroy(private_daemon_t *this)
DESTROY_IF(this->public.connect_manager);
DESTROY_IF(this->public.mediation_manager);
#endif /* ME */
+ /* make sure the cache is clear before unloading plugins */
+ lib->credmgr->flush_cache(lib->credmgr, CERT_ANY);
/* unload plugins to release threads */
lib->plugins->unload(lib->plugins);
#ifdef CAPABILITIES_LIBCAP