From 53ac177cdec046b019d379208b42bcfc9490fbf6 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Mon, 1 Apr 2013 13:44:04 +0200 Subject: [PATCH] Properly handle situation if no resolver plugins are loaded --- src/libcharon/plugins/ipseckey/ipseckey_plugin.c | 5 ++--- src/libstrongswan/resolver/resolver_manager.c | 6 +++++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/libcharon/plugins/ipseckey/ipseckey_plugin.c b/src/libcharon/plugins/ipseckey/ipseckey_plugin.c index 6f0f10507b..7de842dc30 100644 --- a/src/libcharon/plugins/ipseckey/ipseckey_plugin.c +++ b/src/libcharon/plugins/ipseckey/ipseckey_plugin.c @@ -60,7 +60,7 @@ METHOD(plugin_t, destroy, void, { lib->credmgr->remove_set(lib->credmgr, &this->cred->set); } - this->res->destroy(this->res); + DESTROY_IF(this->res); DESTROY_IF(this->cred); free(this); } @@ -87,8 +87,7 @@ plugin_t *ipseckey_plugin_create() if (!this->res) { - DBG1(DBG_CFG, "ipseckey_plugin: Failed to create" - "a DNS resolver instance"); + DBG1(DBG_CFG, "failed to create a DNS resolver instance"); destroy(this); return NULL; } diff --git a/src/libstrongswan/resolver/resolver_manager.c b/src/libstrongswan/resolver/resolver_manager.c index 8effe469ad..55531e1579 100644 --- a/src/libstrongswan/resolver/resolver_manager.c +++ b/src/libstrongswan/resolver/resolver_manager.c @@ -56,7 +56,11 @@ METHOD(resolver_manager_t, remove_resolver, void, METHOD(resolver_manager_t, create, resolver_t*, private_resolver_manager_t *this) { - return this->constructor(); + if (this->constructor) + { + return this->constructor(); + } + return NULL; } METHOD(resolver_manager_t, destroy, void, -- 2.47.2