aboutsummaryrefslogtreecommitdiffstats
path: root/Source/charon/encoding/message.c
diff options
context:
space:
mode:
authorJan Hutter <jhutter@hsr.ch>2005-11-29 12:23:40 +0000
committerJan Hutter <jhutter@hsr.ch>2005-11-29 12:23:40 +0000
commit346af6f3de4735b2c7c8b6abf824bd0258c4be6c (patch)
tree0a87d2b7aee3c3ce663c745bf58423b0ec3d1bfb /Source/charon/encoding/message.c
parente85220af90ac154e9badeece3aaaab30973f648f (diff)
downloadstrongswan-346af6f3de4735b2c7c8b6abf824bd0258c4be6c.tar.bz2
strongswan-346af6f3de4735b2c7c8b6abf824bd0258c4be6c.tar.xz
- fixed bug in diffie hellman exchange (no public value was written)
Diffstat (limited to 'Source/charon/encoding/message.c')
-rw-r--r--Source/charon/encoding/message.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/Source/charon/encoding/message.c b/Source/charon/encoding/message.c
index 82572e5a8..9e962328b 100644
--- a/Source/charon/encoding/message.c
+++ b/Source/charon/encoding/message.c
@@ -614,6 +614,7 @@ static status_t parse_body(private_message_t *this, crypter_t *crypter, signer_t
if (status != SUCCESS)
{
this->logger->log(this->logger, ERROR, "payload type %s could not be verified",mapping_find(payload_type_m,current_payload_type));
+ current_payload->destroy(current_payload);
status = VERIFY_ERROR;
return status;
}
@@ -627,12 +628,14 @@ static status_t parse_body(private_message_t *this, crypter_t *crypter, signer_t
if (status != SUCCESS)
{
this->logger->log(this->logger, ERROR, "encryption payload signature invaild");
+ current_payload->destroy(current_payload);
return status;
}
status = encryption_payload->decrypt(encryption_payload, crypter);
if (status != SUCCESS)
{
this->logger->log(this->logger, ERROR, "parsing decrypted encryption payload failed");
+ current_payload->destroy(current_payload);
return status;
}
}