From e64cb7e315961d3f7772b42c2170acc2bd500a69 Mon Sep 17 00:00:00 2001 From: Bad Diode Date: Sun, 31 Oct 2021 15:53:14 +0100 Subject: Add protection for buffer overflow of tokens --- src/parser.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/parser.c b/src/parser.c index ef7d336..57efd96 100644 --- a/src/parser.c +++ b/src/parser.c @@ -21,11 +21,17 @@ symbol_hash(const HashTable *table, void *key) { Token peek_token(const Parser *parser) { + if (parser->current >= array_size(parser->tokens)) { + return parser->tokens[array_size(parser->tokens) - 1]; + } return parser->tokens[parser->current]; } Token next_token(Parser *parser) { + if (parser->current >= array_size(parser->tokens)) { + return parser->tokens[array_size(parser->tokens) - 1]; + } return parser->tokens[parser->current++]; } @@ -424,12 +430,6 @@ parse_tree(Parser *parser, Errors *errors) { break; } break; } - error_push(errors, (Error){ - .type = ERR_TYPE_PARSER, - .value = ERR_EOF_REACHED, - .line = tok.line, - .col = tok.col, - }); return NULL; } -- cgit v1.2.1