The deposit limit check in UpliftOnlyExample::addLiquidityProportional() allows 101 deposits instead of the intended 100 deposit limit due to off-by-one error
The check if (poolsFeeData[pool][msg.sender].length > 100) is performed before pushing the new deposit to the array. This means when a user has exactly 100 deposits, they can still make one more deposit since 100 is not greater than 100, allowing them to reach 101 total deposits.
Its worth mentioning that The test in UpliftExample.t.sol loops from i = 0 to i =101 (in which the length will be 102)
Contradicts the documented design intention of maximum 100 deposits
Increases risk of out-of-gas errors during array operations with the extra deposit
Manual Review
Change the condition to use >= instead of >:
Only 1 more NFT won’t have any impact. Informational.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.