diff options
Diffstat (limited to 'src/charon/threads/kernel_interface.c')
-rw-r--r-- | src/charon/threads/kernel_interface.c | 10 |
1 files changed, 1 insertions, 9 deletions
diff --git a/src/charon/threads/kernel_interface.c b/src/charon/threads/kernel_interface.c index a2a4265a7..43956b055 100644 --- a/src/charon/threads/kernel_interface.c +++ b/src/charon/threads/kernel_interface.c @@ -1585,22 +1585,14 @@ static status_t add_policy(private_kernel_interface_t *this, if (memcmp(¤t->sel, &policy->sel, sizeof(struct xfrm_selector)) == 0 && policy->direction == current->direction) { - free(policy); /* use existing policy */ if (!update) { current->refcount++; DBG2(DBG_KNL, "policy %R===%R already exists, increasing ", "refcount", src_ts, dst_ts); - if (!high_prio) - { - /* if added policy is for a ROUTED child_sa, do not - * overwrite existing INSTALLED policy */ - iterator->destroy(iterator); - pthread_mutex_unlock(&this->policies_mutex); - return SUCCESS; - } } + free(policy); policy = current; found = TRUE; break; |