aboutsummaryrefslogtreecommitdiffstats
path: root/src/libstrongswan/credentials/credential_manager.c
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2011-12-13 11:37:02 +0100
committerMartin Willi <martin@revosec.ch>2012-03-20 17:31:19 +0100
commit45956d15ea6d53ff7d1917a8a063e98535987dfe (patch)
tree2e17bafda977f9f74a24c71a80391c90a3b48960 /src/libstrongswan/credentials/credential_manager.c
parent226b0f36c74f7739dbf498ad0093e9e208a7db6f (diff)
downloadstrongswan-45956d15ea6d53ff7d1917a8a063e98535987dfe.tar.bz2
strongswan-45956d15ea6d53ff7d1917a8a063e98535987dfe.tar.xz
Free list after removing the last local credential set, fixes a leak report
Diffstat (limited to 'src/libstrongswan/credentials/credential_manager.c')
-rw-r--r--src/libstrongswan/credentials/credential_manager.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/libstrongswan/credentials/credential_manager.c b/src/libstrongswan/credentials/credential_manager.c
index 27b97eab3..4c310406e 100644
--- a/src/libstrongswan/credentials/credential_manager.c
+++ b/src/libstrongswan/credentials/credential_manager.c
@@ -393,6 +393,11 @@ METHOD(credential_manager_t, remove_local_set, void,
sets = this->local_sets->get(this->local_sets);
sets->remove(sets, set, NULL);
+ if (sets->get_count(sets) == 0)
+ {
+ this->local_sets->set(this->local_sets, NULL);
+ sets->destroy(sets);
+ }
}
METHOD(credential_manager_t, cache_cert, void,