Buffer Overflow Causes. ©2002, Jedidiah R. Crandall, Susan L. Gerhart, Jan G. Hogle.  http://sfsecurity.pr.erau.edu
Careless use of buffers without
bounds checking

This is the classical cause of a buffer overflow.  It is a blatant programmer error analogous to trying to pour five gallons of water into a four gallon bucket.  It can lead to the program being hijacked, data being corrupted, or the program crashing.