<story><title>FFmpeg and a thousand fixes</title><url>http://googleonlinesecurity.blogspot.com/2014/01/ffmpeg-and-thousand-fixes.html</url></story><parent_chain><item><author>pjmlp</author><text>The wonders of C:&lt;p&gt;- NULL pointer dereferences,&lt;p&gt;- Invalid pointer arithmetic leading to SIGSEGV due to unmapped memory access,&lt;p&gt;- Out-of-bounds reads and writes to stack, heap and static-based arrays,&lt;p&gt;- Invalid free() calls,&lt;p&gt;- Double free() calls over the same pointer,&lt;p&gt;- Division errors,&lt;p&gt;- Assertion failures,&lt;p&gt;- Use of uninitialized memory.&lt;p&gt;But hey, any good programmer always writes perfect C code.</text></item></parent_chain><comment><author>haberman</author><text>Yeah, and you know, the Rust guys are actually doing some great work on making a language that solves some of these problems without giving up the advantages that make C programmers choose C.&lt;p&gt;Meanwhile, you are just being snarky on a message board while using a whole stack of software that was built by the programmers whose work you are criticizing.</text></comment>
<story><title>FFmpeg and a thousand fixes</title><url>http://googleonlinesecurity.blogspot.com/2014/01/ffmpeg-and-thousand-fixes.html</url></story><parent_chain><item><author>pjmlp</author><text>The wonders of C:&lt;p&gt;- NULL pointer dereferences,&lt;p&gt;- Invalid pointer arithmetic leading to SIGSEGV due to unmapped memory access,&lt;p&gt;- Out-of-bounds reads and writes to stack, heap and static-based arrays,&lt;p&gt;- Invalid free() calls,&lt;p&gt;- Double free() calls over the same pointer,&lt;p&gt;- Division errors,&lt;p&gt;- Assertion failures,&lt;p&gt;- Use of uninitialized memory.&lt;p&gt;But hey, any good programmer always writes perfect C code.</text></item></parent_chain><comment><author>vinkelhake</author><text>Really breaking new ground here. What should FFmpeg have been written in? I can think of a few candidates, but I think they share a number of those &amp;quot;wonders&amp;quot;.</text></comment>