]> git.kaiwu.me - njs.git/commitdiff
Parser: fixed heap-use-after-free in optional chain.
authorAlexander Borisov <alexander.borisov@nginx.com>
Fri, 19 Jun 2020 16:48:12 +0000 (19:48 +0300)
committerAlexander Borisov <alexander.borisov@nginx.com>
Fri, 19 Jun 2020 16:48:12 +0000 (19:48 +0300)
src/njs_parser.c
src/test/njs_unit_test.c

index 61d76c9d90688b28cbabf156a0f13197763465f6..9b4632d8fd0158c58530e1166d92bb8d9d26ac68 100644 (file)
@@ -2881,10 +2881,6 @@ njs_parser_optional_chain(njs_parser_t *parser, njs_lexer_token_t *token,
         break;
 
     default:
-        if (!njs_lexer_token_is_identifier_name(token)) {
-            njs_lexer_consume_token(parser->lexer, 1);
-        }
-
         ret = njs_parser_property(parser, token, current);
 
         switch (ret) {
index 2eef5c5a0410c054e73ea43f09df8eed3e3bc004..b7052caf863210994840713e9a00e421138984f3 100644 (file)
@@ -17016,6 +17016,9 @@ static njs_unit_test_t  njs_test[] =
 
     { njs_str("{{} ({a: 1, b: {}\n}\n})\n}"),
       njs_str("SyntaxError: Unexpected token \"}\" in 3") },
+
+    { njs_str("object?."),
+      njs_str("SyntaxError: Unexpected end of input in 1") },
 };