The contract pushes funds to a list of recipients in a loop. One recipient that reverts (or is a contract with no receive) blocks the entire batch, freezing payouts for everyone (griefing).
mapping(address=>uint256) public owed;
function claim() external {
uint256 a = owed[msg.sender]; owed[msg.sender]=0;
(bool ok,)=msg.sender.call{value:a}(""); require(ok);
}
The SaferICO scanner runs 201 detectors over your Solidity source, SAFE-0037 among them. Paste an address or the source itself — a small per-scan fee, shown before you sign, or unlimited on any plan.