aboutsummaryrefslogtreecommitdiffstats
path: root/src/libhydra/plugins/kernel_pfkey/kernel_pfkey_ipsec.c
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2013-07-24 11:11:25 +0200
committerTobias Brunner <tobias@strongswan.org>2013-07-24 16:17:22 +0200
commite7d717cf016a7648dc6b42bfd7839a08713af7f7 (patch)
treedb8fbb4341af8b1668451ce7edd2b8614f345613 /src/libhydra/plugins/kernel_pfkey/kernel_pfkey_ipsec.c
parente5455e9413839466ef6f2e0f8e93ae10e3bae2f3 (diff)
downloadstrongswan-e7d717cf016a7648dc6b42bfd7839a08713af7f7.tar.bz2
strongswan-e7d717cf016a7648dc6b42bfd7839a08713af7f7.tar.xz
kernel-pfkey: Add sanity check when deleting policies
Diffstat (limited to 'src/libhydra/plugins/kernel_pfkey/kernel_pfkey_ipsec.c')
-rw-r--r--src/libhydra/plugins/kernel_pfkey/kernel_pfkey_ipsec.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/libhydra/plugins/kernel_pfkey/kernel_pfkey_ipsec.c b/src/libhydra/plugins/kernel_pfkey/kernel_pfkey_ipsec.c
index 214feac05..668c581e1 100644
--- a/src/libhydra/plugins/kernel_pfkey/kernel_pfkey_ipsec.c
+++ b/src/libhydra/plugins/kernel_pfkey/kernel_pfkey_ipsec.c
@@ -2543,6 +2543,11 @@ METHOD(kernel_ipsec_t, del_policy, status_t,
first = FALSE;
}
enumerator->destroy(enumerator);
+ if (!to_remove)
+ { /* sanity check */
+ this->mutex->unlock(this->mutex);
+ return SUCCESS;
+ }
policy->used_by->remove(policy->used_by, to_remove, NULL);
mapping = to_remove;