Static Analyzer for Solidity
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
slither/tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol

33 lines
1.0 KiB

contract C{
mapping (address => uint256) balances;
function bad(address[] memory receivers) public payable {
for (uint256 i = 0; i < receivers.length; i++) {
address(this).delegatecall(abi.encodeWithSignature("addBalance(address)", receivers[i]));
}
}
function addBalance(address a) public payable {
balances[a] += msg.value;
}
function bad2(address[] memory receivers) public payable {
bad2_internal(receivers);
}
function bad2_internal(address[] memory receivers) internal {
for (uint256 i = 0; i < receivers.length; i++) {
address(this).delegatecall(abi.encodeWithSignature("addBalance(address)", receivers[i]));
}
}
function bad3(address[] memory receivers) public payable {
for (uint256 i = 0; i < receivers.length; i++) {
for (uint256 j = 0; j < receivers.length; j++) {
address(this).delegatecall(abi.encodeWithSignature("addBalance(address)", receivers[i]));
}
}
}
}