I'm a beginner when it comes to software development (mostly web development), but it seems to me that the majority of complex exploits like this involve some type of memory overflow and subsequent code execution.
Shouldn't there be methods for detecting these kinds of things in source code or more priority given to preventing it in the C/low-level community?