 
                            ...
SIG31-C-EX1:  The C Standard, 7.14.1.1 paragraph 5 [ISO/IEC 9899:2011], makes a special exception for errno when a valid call to the signal() function results in a SIG_ERR return, allowing errno to take an indeterminate value (see ERR32-C. Do not rely on indeterminate values of errno).
Risk Assessment
Accessing or modifying shared objects in signal handlers can result in accessing data in an inconsistent state. Michal Zalewski's paper "Delivering Signals for Fun and Profit" [Zalewski 2001] provides some examples of vulnerabilities that can result from violating this and other signal-handling rules.
...
| [C99 Rationale 2003] | 5.2.3, "Signals and Interrupts" | 
| [ISO/IEC 9899:2011] | Subclause 7.14.1.1, "The signalFunction" | 
| [Zalewski 2001] | 
...