Smash The Stack

What Does Smash The Stack Mean?

“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.

Techopedia Explains Smash 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.


Related Terms

Margaret Rouse
Technology Expert

Margaret is an award-winning technical writer and teacher known for her ability to explain complex technical subjects to a non-technical business audience. Over the past twenty years, her IT definitions have been published by Que in an encyclopedia of technology terms and cited in articles by the New York Times, Time Magazine, USA Today, ZDNet, PC Magazine, and Discovery Magazine. She joined Techopedia in 2011. Margaret's idea of a fun day is helping IT and business professionals learn to speak each other’s highly specialized languages.