aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Willi <martin@strongswan.org>2009-09-03 18:09:29 +0200
committerMartin Willi <martin@strongswan.org>2009-09-03 18:09:29 +0200
commitdd2b6f3073a82be6547abd75a229b42c17592cbd (patch)
treef7428bfa0694767dc9d732ae521a4ff2794fce0d
parent72e2faf291f9866d27bf8b07c40f01dd7bb9434d (diff)
downloadstrongswan-dd2b6f3073a82be6547abd75a229b42c17592cbd.tar.bz2
strongswan-dd2b6f3073a82be6547abd75a229b42c17592cbd.tar.xz
fixed memleak in rekey collissions
-rw-r--r--src/charon/sa/tasks/child_rekey.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/charon/sa/tasks/child_rekey.c b/src/charon/sa/tasks/child_rekey.c
index ff018d3f3..06027d112 100644
--- a/src/charon/sa/tasks/child_rekey.c
+++ b/src/charon/sa/tasks/child_rekey.c
@@ -329,6 +329,7 @@ static void collide(private_child_rekey_t *this, task_t *other)
if (rekey == NULL || rekey->child_sa != this->child_sa)
{
/* not the same child => no collision */
+ other->destroy(other);
return;
}
}
@@ -338,12 +339,14 @@ static void collide(private_child_rekey_t *this, task_t *other)
if (del == NULL || del->get_child(del) != this->child_sa)
{
/* not the same child => no collision */
+ other->destroy(other);
return;
}
}
else
{
/* any other task is not critical for collisisions, ignore */
+ other->destroy(other);
return;
}
DESTROY_IF(this->collision);