This issue introduced when mitigating H-02 issue on the Private Review.
Description
When mitigating the issue, the team chooses to not reset the variables again. But the problem is that they let encodeCall() function takes only one argument, which is the function signature, and not the arguments.
The problem here is that encodeCall() takes only one argument, and it should takes two. The first for functionPointer, and the second is a tuble with args.
abi.encodeCall(function functionPointer, (...)) returns (bytes memory): ABI-encodes a call to functionPointer with the arguments found in the tuple. Performs a full type-check, ensuring the types match the function signature. Result equals abi.encodeWithSelector(functionPointer.selector, ...)
This will result in a compilation process fail, as the function should take two args, and the passed is just one.
This issue introduced when mitigating
H-02
issue on the Private Review.Description
When mitigating the issue, the team chooses to not reset the variables again. But the problem is that they let
encodeCall()
function takes only one argument, which is the function signature, and not the arguments.The problem here is that
encodeCall()
takes only one argument, and it should takes two. The first forfunctionPointer
, and the second is a tuble with args.https://docs.soliditylang.org/en/latest/cheatsheet.html#abi-encoding-and-decoding-functions
This will result in a compilation process fail, as the function should take two args, and the passed is just one.
Recommended Mitigation
Pass an empty tuble in the second arg.