diff options
author | Rubin Xu <rubinxu@google.com> | 2021-01-07 13:50:35 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2021-01-07 13:50:35 +0000 |
commit | 42162493ba89f994a86621798653ca6c76fb77dd (patch) | |
tree | 0f75c15b6d2f46b7cdc0ad37b1785fb732f684eb | |
parent | 7646b279cfc785893bf436ad35c964446e6d519d (diff) | |
parent | bafda7e96091220ec51e3e8597748215a990132c (diff) | |
download | v8-42162493ba89f994a86621798653ca6c76fb77dd.tar.gz |
[parser] Fix off-by-one in parameter count check am: 089e85f552 am: e3963822c3 am: e4e4ca007b am: a2bf5cb802 am: bafda7e960
Original change: https://googleplex-android-review.googlesource.com/c/platform/external/v8/+/13120352
MUST ONLY BE SUBMITTED BY AUTOMERGER
Change-Id: I47104bd6c8a3c9a7cf446cc39581530741a742ce
-rw-r--r-- | src/messages.h | 2 | ||||
-rw-r--r-- | src/parsing/parser-base.h | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/src/messages.h b/src/messages.h index 030fc0b9..e94ce16e 100644 --- a/src/messages.h +++ b/src/messages.h @@ -695,7 +695,7 @@ class ErrorUtils : public AllStatic { T(TooManyArguments, \ "Too many arguments in function call (only 65535 allowed)") \ T(TooManyParameters, \ - "Too many parameters in function definition (only 65535 allowed)") \ + "Too many parameters in function definition (only 65534 allowed)") \ T(TooManySpreads, \ "Literal containing too many nested spreads (up to 65534 allowed)") \ T(TooManyVariables, "Too many variables declared (only 4194303 allowed)") \ diff --git a/src/parsing/parser-base.h b/src/parsing/parser-base.h index 9d13724f..60d5e11f 100644 --- a/src/parsing/parser-base.h +++ b/src/parsing/parser-base.h @@ -3830,7 +3830,8 @@ void ParserBase<Impl>::ParseFormalParameterList(FormalParametersT* parameters, if (peek() != Token::RPAREN) { while (true) { - if (parameters->arity > Code::kMaxArguments) { + // Add one since we're going to be adding a parameter. + if (parameters->arity + 1 > Code::kMaxArguments) { ReportMessage(MessageTemplate::kTooManyParameters); *ok = false; return; |