From a73822176ad0a8ce321d0f6460a07721cf6a8d83 Mon Sep 17 00:00:00 2001 From: Nicolas Tsiftes Date: Mon, 20 Aug 2018 14:07:14 +0200 Subject: [PATCH] Check element size when parsing tokens. --- os/storage/antelope/aql-lexer.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/os/storage/antelope/aql-lexer.c b/os/storage/antelope/aql-lexer.c index 4bdefecf2..0510385b5 100644 --- a/os/storage/antelope/aql-lexer.c +++ b/os/storage/antelope/aql-lexer.c @@ -207,6 +207,10 @@ next_string(lexer_t *lexer, const char *s) *lexer->token = STRING_VALUE; lexer->input = end + 1; /* Skip the closing delimiter. */ + if(length > DB_MAX_ELEMENT_SIZE - 1) { + length = DB_MAX_ELEMENT_SIZE - 1; + } + memcpy(lexer->value, s, length); (*lexer->value)[length] = '\0'; @@ -236,6 +240,10 @@ next_token(lexer_t *lexer, const char *s) *lexer->token = IDENTIFIER; + if(length > DB_MAX_ELEMENT_SIZE - 1) { + length = DB_MAX_ELEMENT_SIZE - 1; + } + memcpy(lexer->value, s, length); (*lexer->value)[length] = '\0';