diff options
author | Martin Willi <martin@revosec.ch> | 2012-02-29 16:07:16 +0100 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2012-05-02 14:05:52 +0200 |
commit | f14bf6345fff3139fde71c3864184746eaf89499 (patch) | |
tree | 348e1ad1fb51664e81a413ac5be92c49b9e6fab0 /src/libstrongswan/plugins/plugin_loader.c | |
parent | b24be29646442210f43b100d2282b6c0a0e52e09 (diff) | |
download | strongswan-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.c | 3 |
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)) |