diff options
author | Martin Willi <martin@strongswan.org> | 2009-09-03 18:09:29 +0200 |
---|---|---|
committer | Martin Willi <martin@strongswan.org> | 2009-09-03 18:09:29 +0200 |
commit | dd2b6f3073a82be6547abd75a229b42c17592cbd (patch) | |
tree | f7428bfa0694767dc9d732ae521a4ff2794fce0d /src/charon/sa/tasks/child_rekey.c | |
parent | 72e2faf291f9866d27bf8b07c40f01dd7bb9434d (diff) | |
download | strongswan-dd2b6f3073a82be6547abd75a229b42c17592cbd.tar.bz2 strongswan-dd2b6f3073a82be6547abd75a229b42c17592cbd.tar.xz |
fixed memleak in rekey collissions
Diffstat (limited to 'src/charon/sa/tasks/child_rekey.c')
-rw-r--r-- | src/charon/sa/tasks/child_rekey.c | 3 |
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); |