Buffer Overflow Defences
-  Use a language with strong typing and array checking
 
-  Avoid fixed buffers 
 
-  Avoid unchecked routines using fixed buffers (e.g. gets, strcpy) 
 
-  Use routines that have buffer length as an argument (e.g. fgets, strncpy) 
 
-  Use libraries and execution environments that protect against stack
smashing attacks 
 
-  When writing to a fixed buffer, check index against the buffer's size