#include <signal.h>
size_t i;
void handler(void) {
i = 0;
}
int main(void) {
signal(SIGINT, handler);
i = 1;
while(i) {
/* do something */
}
}
|
In addition to incorrect optimizations, this can cause race conditions, resulting in inconsistent state.
Rule |
Severity |
Likelihood |
Remediation Cost |
Priority |
Level |
|---|---|---|---|---|---|
SIGxx-C |
2 (medium) |
2 (probable) |
3 (low) |
P12 |
L2 |
\[[ISO/IEC 03|AA. C References#ISO/IEC 03]\] "Signals and Interrupts"
\[[Open Group 04|AA. C References#Open Group 04]\] [longjmp|http://www.opengroup.org/onlinepubs/000095399/functions/longjmp.html]
\[OpenBSD\] [{{signal()}} Man Page|http://www.openbsd.org/cgi-bin/man.cgi?query=signal] |