Signal Handlers - stdio have look at lib/libc/stdio/fvwrite.c - fiddles with all sorts of pointers upon return to your main program the actual pointers and your assumptions are out of sync. trying to write behind your allocated buffers... most time you crash, but it might even end up in an exploitable buffer overrun