Non-Compliant Coding Example
#include <signal.h>
size_t i;
void handler(void) {
i = 0;
}
int main(void) {
signal(SIGINT, handler);
i = 1;
while(i) {
/* do something */
}
}
Compliant Solution
Risk Assessment
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 |
References
[[ISO/IEC 03]] "Signals and Interrupts"
[[Open Group 04]] longjmp![]()
[OpenBSD] signal() Man Page![]()