Two variables that must stay in sync (e.g. totalSupply vs sum of balances, totalStaked vs stakes) are updated in different places and can drift, breaking invariants relied on elsewhere.
function unstake(uint a) external { stake[msg.sender]-=a; totalStaked-=a; }
Largest recorded losses in the same failure class — related, not the same bug:
The SaferICO scanner runs 201 detectors over your Solidity source, SAFE-0070 among them. Paste an address or the source itself — a small per-scan fee, shown before you sign, or unlimited on any plan.