From 80d3a187c5b8d0ea0e88296c48dddaecece837a2 Mon Sep 17 00:00:00 2001 From: Martin Willi Date: Wed, 17 Jun 2009 13:38:05 +0200 Subject: [PATCH] double check that parsing a list consumes all bytes --- src/charon/encoding/parser.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/charon/encoding/parser.c b/src/charon/encoding/parser.c index 3e333f76d..76ae32fb9 100644 --- a/src/charon/encoding/parser.c +++ b/src/charon/encoding/parser.c @@ -329,6 +329,12 @@ static bool parse_list(private_parser_t *this, int rule_number, list->insert_last(list, payload); length -= this->byte_pos - pos_before; } + if (length != 0) + { /* must yield exactly to zero */ + DBG1(DBG_ENC, " length of %N substructure list invalid", + payload_type_names, payload_type); + return FALSE; + } *output_pos = list; return TRUE; }