-
-
Notifications
You must be signed in to change notification settings - Fork 850
Open
Labels
needs triageneeds triageneeds triage
Description
Version Information
- vyper Version (output of
vyper --version
): 14a4ca6
What's your issue about?
Per @trocher:
In Slice.fetch_call_return, the following bounds check contains an off-by-one error that makes it
less precise than it could be:
if start_literal is not None:
if start_literal > arg_type.length:
raise ArgumentException(f"slice out of bounds for {arg_type}", start_expr)
if length_literal is not None and start_literal + length_literal > arg_type.length:
raise ArgumentException(f"slice out of bounds for {arg_type}", node)
The condition start_literal > arg_type.length could be made more precise by checking
start_literal >= arg_type.length instead. This is because a slice is out of bounds when the
start index is equal to the length of the array, not just when it exceeds the length.
Metadata
Metadata
Assignees
Labels
needs triageneeds triageneeds triage