From: Tobias Brunner Date: Thu, 5 Mar 2015 09:08:33 +0000 (+0100) Subject: daemon: Remove scheduled jobs before unloading plugins X-Git-Tag: 5.3.0dr1~21 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=69bb1b8c1885c8d12cd2d8e0ca133bb9a2487ef8;p=thirdparty%2Fstrongswan.git daemon: Remove scheduled jobs before unloading plugins Especially callback jobs might refer to memory that gets invalid after the plugins got unlaoded, so make sure we destroy these jobs before. References #840. --- diff --git a/src/libcharon/daemon.c b/src/libcharon/daemon.c index d44cb37eba..b1b8f57f0a 100644 --- a/src/libcharon/daemon.c +++ b/src/libcharon/daemon.c @@ -474,8 +474,9 @@ 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 */ + /* make sure the cache and scheduler are clear before unloading plugins */ lib->credmgr->flush_cache(lib->credmgr, CERT_ANY); + lib->scheduler->flush(lib->scheduler); lib->plugins->unload(lib->plugins); DESTROY_IF(this->public.attributes); DESTROY_IF(this->kernel_handler);