Une fonction qui réserve un cadre de seize octets et n'en rend que huit laisse le pointeur de pile huit octets trop bas. Rien ne se passe sur le moment.
Objectif
Chiffrer le déséquilibre, et compter ce que le matériel en dit.
Ce que le code suivant lira
Tout ce qui est repéré par un décalage depuis le pointeur de pile se trouve décalé du même écart. La fonction appelante relira donc, à la place de ses propres variables locales, ce qui traîne huit octets plus loin. Le programme ne s'arrête pas : il continue avec des valeurs fausses, et la panne apparaît bien plus tard, à un endroit sans rapport avec la fonction fautive.
C'est le mode de défaillance le plus coûteux à diagnostiquer, et le seul remède est une discipline : une soustraction au début, l'addition symétrique à la fin, écrites en même temps.