Buffer Overflow Causes. ©2002, Jedidiah R. Crandall, Susan L. Gerhart, Jan G. Hogle.  http://sfsecurity.pr.erau.edu
All sorts of other far-fetched but deadly-serious things you should think about - Recommendations.
Challenge all of your assumptions like an attacker would.
Never assume that a well inspected and thoroughly tested piece of software is absolutely defect free.  As long as programmers use C there will always be buffer overflows, hopefully just not as many.