Function calls in C program usually pass parameter via stack. A caller program will store
parameters into stack before calling a function. The function will then locate the
parameters from the stack. Stack also will contain return address so that the function can
jump back to the caller program. If we can submit data more than previously allocated
space, we can overflow the dedicated space and if we can overwrite the stack, we call this
Stack Based Overflow. Overflow the stack is especially fun because stack usually contain
return address. For more information about it, you may want to look at a classic article
from Aleph One (http://www.phrack.org/show.php?p=49&a=14).