A public function pushes to a storage array with no size limit, and another function later iterates that array. Anyone can grow it until iteration exceeds the block gas limit, permanently bricking the dependent function.
// register() { participants.push(msg.sender); } // no cap // distribute() loops participants. Attacker registers 10k addresses // -> distribute() always OOG-reverts; funds locked.
require(items.length < MAX_ITEMS, "full");
items.push(x);
// or avoid iterating storage arrays; use mappings + pull pattern
The SaferICO scanner runs 201 detectors over your Solidity source, SAFE-0240 among them. Paste an address or the source itself — a small per-scan fee, shown before you sign, or unlimited on any plan.