aboutsummaryrefslogtreecommitdiffstats
path: root/src/libstrongswan/plugins/plugin_loader.c
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2012-02-29 16:07:16 +0100
committerMartin Willi <martin@revosec.ch>2012-05-02 14:05:52 +0200
commitf14bf6345fff3139fde71c3864184746eaf89499 (patch)
tree348e1ad1fb51664e81a413ac5be92c49b9e6fab0 /src/libstrongswan/plugins/plugin_loader.c
parentb24be29646442210f43b100d2282b6c0a0e52e09 (diff)
downloadstrongswan-f14bf6345fff3139fde71c3864184746eaf89499.tar.bz2
strongswan-f14bf6345fff3139fde71c3864184746eaf89499.tar.xz
Don't depend on a feature that has a dependency to the same feauture during unload
Diffstat (limited to 'src/libstrongswan/plugins/plugin_loader.c')
-rw-r--r--src/libstrongswan/plugins/plugin_loader.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/libstrongswan/plugins/plugin_loader.c b/src/libstrongswan/plugins/plugin_loader.c
index 164b68e60..94ef00b2e 100644
--- a/src/libstrongswan/plugins/plugin_loader.c
+++ b/src/libstrongswan/plugins/plugin_loader.c
@@ -361,7 +361,8 @@ static bool dependency_required(private_plugin_loader_t *this,
count = entry->plugin->get_features(entry->plugin, &features);
for (i = 0; i < count; i++)
{
- if (feature_loaded(this, entry, &features[i]))
+ if (&features[i] != dep &&
+ feature_loaded(this, entry, &features[i]))
{
while (++i < count && (features[i].kind == FEATURE_DEPENDS ||
features[i].kind == FEATURE_SDEPEND))