diff options
author | Martin Willi <martin@revosec.ch> | 2011-12-13 11:37:02 +0100 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2012-03-20 17:31:19 +0100 |
commit | 45956d15ea6d53ff7d1917a8a063e98535987dfe (patch) | |
tree | 2e17bafda977f9f74a24c71a80391c90a3b48960 /src/libstrongswan/credentials/credential_manager.c | |
parent | 226b0f36c74f7739dbf498ad0093e9e208a7db6f (diff) | |
download | strongswan-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.c | 5 |
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, |