I haven't read Adam's response yet, and am predicting before I read it what it will say: Buffer overflows are a permanent thing because coders are sloppy, lazy and incompetent and/or because their bosses are greedy and unscrupulous.