code-423n4 / 2021-12-amun-findings

0 stars 0 forks source link

An array's length should be cached to save gas in for-loops #288

Closed code423n4 closed 2 years ago

code423n4 commented 2 years ago

Handle

Dravee

Vulnerability details

Impact

Increased gas cost

Proof of Concept

(As seen on this contest: https://github.com/code-423n4/2021-10-slingshot-findings/issues/63) Reading array length at each iteration of the loop takes 6 gas (3 for mload and 3 to place memory_offset) in the stack.

Caching the array length in the stack saves around 3 gas per iteration.

Instances include:

Tools Used

VS Code

Recommended Mitigation Steps

Store the array's length in a variable before the for-loop, and use it instead.

0xleastwood commented 2 years ago

Duplicate of #249