From 66e4e6c3c6ae9ccf4ae82bf0d3136f7a7ed3eb44 Mon Sep 17 00:00:00 2001 From: Vadim Zhestikov Date: Wed, 16 Nov 2022 09:15:39 -0800 Subject: [PATCH] Fixed for-in rhs expression parsing error handling. This fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=53426. --- src/njs_parser.c | 2 +- src/test/njs_unit_test.c | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/njs_parser.c b/src/njs_parser.c index ee7ce9f3..21cdf654 100644 --- a/src/njs_parser.c +++ b/src/njs_parser.c @@ -6054,7 +6054,7 @@ njs_parser_for_in_statement_statement(njs_parser_t *parser, { njs_parser_node_t *forin; - if (token->type != NJS_TOKEN_CLOSE_PARENTHESIS) { + if (parser->ret != NJS_OK || token->type != NJS_TOKEN_CLOSE_PARENTHESIS) { return njs_parser_failed(parser); } diff --git a/src/test/njs_unit_test.c b/src/test/njs_unit_test.c index bd1c1832..5ce4d075 100644 --- a/src/test/njs_unit_test.c +++ b/src/test/njs_unit_test.c @@ -2962,6 +2962,9 @@ static njs_unit_test_t njs_test[] = { njs_str("for ((a,b,c) => {};;) {break}"), njs_str("undefined") }, + { njs_str("for(I in``[)8"), + njs_str("SyntaxError: Unexpected token \")\" in 1") }, + /* switch. */ { njs_str("switch"), -- 2.47.3