From: Martin Willi Date: Wed, 10 Nov 2010 16:40:43 +0000 (+0100) Subject: Fixed length calculation of unknown payload X-Git-Tag: 4.5.1~289 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b0f6b31db8be3a014a7a31338eab2feabda54cec;p=thirdparty%2Fstrongswan.git Fixed length calculation of unknown payload --- diff --git a/src/libcharon/encoding/payloads/unknown_payload.c b/src/libcharon/encoding/payloads/unknown_payload.c index 7fa3816323..f2c7808857 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; }