Give a hint that decryption failed if payload length invalid

This commit is contained in:
Martin Willi
2012-03-20 17:31:30 +01:00
parent 07b8ec7c00
commit dd5c3787dc
@@ -432,6 +432,13 @@ static status_t parse(private_encryption_payload_t *this, chunk_t plain)
{ {
payload_t *payload; payload_t *payload;
if (plain.len < 4 || untoh16(plain.ptr + 2) > plain.len)
{
DBG1(DBG_ENC, "invalid %N payload length, decryption failed?",
payload_type_names, type);
parser->destroy(parser);
return PARSE_ERROR;
}
if (parser->parse_payload(parser, type, &payload) != SUCCESS) if (parser->parse_payload(parser, type, &payload) != SUCCESS)
{ {
parser->destroy(parser); parser->destroy(parser);