diff options
Diffstat (limited to 'src/charon/encoding/payloads/sa_payload.c')
-rw-r--r-- | src/charon/encoding/payloads/sa_payload.c | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/src/charon/encoding/payloads/sa_payload.c b/src/charon/encoding/payloads/sa_payload.c index e03770d1e..f0a13eb58 100644 --- a/src/charon/encoding/payloads/sa_payload.c +++ b/src/charon/encoding/payloads/sa_payload.c @@ -165,17 +165,9 @@ static status_t verify(private_sa_payload_t *this) */ static status_t destroy(private_sa_payload_t *this) { - /* all proposals are getting destroyed */ - while (this->proposals->get_count(this->proposals) > 0) - { - proposal_substructure_t *current_proposal; - this->proposals->remove_last(this->proposals,(void **)¤t_proposal); - current_proposal->destroy(current_proposal); - } - this->proposals->destroy(this->proposals); - + this->proposals->destroy_offset(this->proposals, + offsetof(proposal_substructure_t, destroy)); free(this); - return SUCCESS; } |