...
Two signals in quick succession can trigger a race condition on nonpersistent platforms, causing the signal's default behavior despite a handler's attempt to override it.
Rule | Severity | Likelihood | Detectable | RepairableRemediation Cost | Priority | Level |
|---|---|---|---|---|---|---|
SIG34-C | Low | Unlikely | Yes | LowNo | P3P2 | L3 |
Automated Detection
Tool | Version | Checker | Description | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Astrée |
| signal-handler-signal-call | Partially checked | |||||||||||||||||||||
| Axivion Bauhaus Suite |
| CertC-SIG34 | Supported, but no explicit checker||||||||||||||||||||||
| CodeSonar |
| BADFUNC.SIGNAL | Use of signal | |||||||||||||||||||||
| Compass/ROSE | Can detect violations of this rule. However, false positives may occur on systems with persistent handlers | |||||||||||||||||||||||
| Cppcheck Premium |
| premium-cert-sig34-c | ||||||||||||||||||||||
| Helix QAC |
| C5021 C++5022 | ||||||||||||||||||||||
| Klocwork |
| MISRA.STDLIB.SIGNAL | ||||||||||||||||||||||
| LDRA tool suite |
| 97 D | Fully implemented | |||||||||||||||||||||
| Parasoft C/C++test |
| MISRA2004-20_8_b | CERT_C-SIG34-a | Properly define signal handlers | ||||||||||||||||||||
| PC-lint Plus |
| 2762, 2763 | Fully supported | |||||||||||||||||||||
| Implemented
| R2017b |
| CERT C: Rule SIG34-C | Checks for signal | Signalcall from within | signal handlerNonpersistentsignal handler | calling signal( | ) in Windows system causes race conditionPRQA QA-C | |||||||||||||||
| Include Page | PRQA QA-C_v | PRQA QA-C_v | rule partially covered) | |||||||||||||||||||||
| 5021 | Partially implemented | RuleChecker |
| Supported, but no explicit checkersignal-handler-signal-call | Partially checked |
Related Vulnerabilities
Search for vulnerabilities resulting from the violation of this rule on the CERT website.
...