Buffer Overflow Intro. ©2002, Jedidiah R. Crandall, Susan L. Gerhart, Jan G. Hogle.  http://sfsecurity.pr.erau.edu
Glossary
Push – Pushing is the operation of putting something new on the top of a stack.  Computers use pushing to store the return pointer when one subroutine calls another subroutine.
Pop – Popping is the operation of taking something off the top of a stack.  Computers use pop operations to retrieve the stored return pointer and use it as a reference to get back to the original subroutine that made the call to the subroutine that just finished.
Return pointer – A return pointer is a special kind of pointer that computers use on a stack to remember what instruction they were about to execute in one subroutine when they had to go start executing another subroutine.
C – C is the most commonly used high-level computer programming language, and the one most responsible for the buffer overflow problem.  C source code is compiled into a low-level language that a computer can understand, such as a bunch of pieces of paper with numbers written on them in mailboxes.