Tech moves fast! Stay ahead of the curve with Techopedia!
Join nearly 200,000 subscribers who receive actionable tech insights from Techopedia.
“Smash the stack” is a slang term for manipulating a program in certain programming languages. It generally refers to attempts to cause changes in random memory access that can produce bugs and problem situations.
Smash the stack is also known as trash the stack, scribble the stack or mangle the stack.
In C and related languages, the stack is an abstract data type that is used to control memory access, for example, in returning variables from one procedure or function to another, or in allocating variables used in functions. Functions and procedures pass variables between each other, and so the contiguous stack, with features such as a pointer, is used to manage this type of dynamic allocation.
In C, “push” and “pop” commands manipulate the stack. Smashing the stack happens when function calls write past the end of an array, which can corrupt the execution stack and cause errors in memory access and the use of memory addresses. This could also be called overflowing the buffer.