Infectious Executable Stacks

1 · Christopher Wellons · Nov. 15, 2019, 4:15 a.m.
Summary
In software development there are many concepts that at first glance seem useful and sound, but, after considering the consequences of their implementation and use, are actually horrifying. Examples include thread cancellation, variable length arrays, and memory aliasing. GCC’s closure extension to C is another, and this little feature compromises the entire GNU toolchain. GNU C nested functions GCC has its own dialect of C called GNU C. One feature unique to GNU C is nested functions, which all...