Destroy objects hashtable after plugin_manager.
authorTobias Brunner <tobias@strongswan.org>
Wed, 26 Oct 2011 15:35:18 +0000 (17:35 +0200)
committerTobias Brunner <tobias@strongswan.org>
Wed, 26 Oct 2011 15:39:12 +0000 (17:39 +0200)
If plugins are not explicitly unloaded before library_deinit is called
there could have been a segfault because some plugins might unregister
objects during unloading/destruction.

src/libstrongswan/library.c

index 5bbf199..6ed4d12 100644 (file)
@@ -61,7 +61,6 @@ void library_deinit()
        detailed = lib->settings->get_bool(lib->settings,
                                                                "libstrongswan.leak_detective.detailed", TRUE);
 
-       this->objects->destroy(this->objects);
        this->public.scheduler->destroy(this->public.scheduler);
        this->public.processor->destroy(this->public.processor);
        this->public.plugins->destroy(this->public.plugins);
@@ -73,6 +72,7 @@ void library_deinit()
        this->public.fetcher->destroy(this->public.fetcher);
        this->public.db->destroy(this->public.db);
        this->public.printf_hook->destroy(this->public.printf_hook);
+       this->objects->destroy(this->objects);
        if (this->public.integrity)
        {
                this->public.integrity->destroy(this->public.integrity);