When a function exits, its variables are popped off this structure.
The article "The Geometry of Innocent Flesh on the Bone" described a technique in which this structure is made to execute bits of code called gadgets; that technique is return-oriented programming. The return-to-libc method circumvents schemes in which this structure is non-executable, although it is usually defeated using Address Space Layout Randomization. Adding random values called canaries to this structure is intended to prevent the overwriting of return pointers on this structure's (*) frames, which is often the goal of attacks that "smash" this structure. This structure grows downwards, in contrast to another region used for dynamic memory allocation, the heap. When a function exits, its variables are popped off this structure. For 10 points, name this region of computer memory that shares its name with a first-in, last-out data structure.
The article "The Geometry of Innocent Flesh on the Bone" described a technique in which this structure is made to execute bits of code called gadgets; that technique is return-oriented programming.
call stack [or the stack; accept execution stack, control stack, function stack, or run-time stack]