From b0f6b31db8be3a014a7a31338eab2feabda54cec Mon Sep 17 00:00:00 2001 From: Martin Willi Date: Wed, 10 Nov 2010 17:40:43 +0100 Subject: Fixed length calculation of unknown payload --- src/libcharon/encoding/payloads/unknown_payload.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/libcharon/encoding') diff --git a/src/libcharon/encoding/payloads/unknown_payload.c b/src/libcharon/encoding/payloads/unknown_payload.c index 7fa381632..f2c780885 100644 --- a/src/libcharon/encoding/payloads/unknown_payload.c +++ b/src/libcharon/encoding/payloads/unknown_payload.c @@ -97,6 +97,10 @@ encoding_rule_t unknown_payload_encodings[] = { METHOD(payload_t, verify, status_t, private_unknown_payload_t *this) { + if (this->payload_length != UNKNOWN_PAYLOAD_HEADER_LENGTH + this->data.len) + { + return FAILED; + } return SUCCESS; } @@ -192,6 +196,7 @@ unknown_payload_t *unknown_payload_create_data(payload_type_t type, this = (private_unknown_payload_t*)unknown_payload_create(type); this->data = data; this->critical = critical; + this->payload_length = UNKNOWN_PAYLOAD_HEADER_LENGTH + data.len; return &this->public; } -- cgit v1.2.3