Legacy ERC-20 clients could send under-padded calldata; the EVM zero-pads it, shifting parameters (e.g. inflating an amount). Mostly mitigated by modern compilers/ABI decoding but relevant for hand-rolled calldata parsing.
require(msg.data.length >= EXPECTED, "short calldata"); // when parsing manually
Largest recorded losses in the same failure class — related, not the same bug:
The SaferICO scanner runs 201 detectors over your Solidity source, SAFE-0089 among them. Paste an address or the source itself — a small per-scan fee, shown before you sign, or unlimited on any plan.