20,000 USDC
View results
Submission Details
Severity: gas

No check if `p.loanToken` and `p.collateralToken` are contracts when updating the pool

Summary

setPool function in Lender.sol contract does not check if pool parameters p.loanToken and p.collateralToken are contracts.

Tools Used

Manual Review

Recommendations

Use OpenZeppelin isContract(address account) function to check if the input address is a contract

Example:

function setPool(Pool calldata p) public returns (bytes32 poolId) {
...
require(isContract(p.loanToken) && isContract(p.collateralToken), "Token is not a contract");
...
}

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.