...
Invoking functions that are not asynchronous-safe from within a signal handler is undefined behavior 132.
Rule | Severity | Likelihood | Detectable | RepairableRemediation Cost | Priority | Level |
|---|---|---|---|---|---|---|
SIG30-C | High | Likely | Yes | NoMedium | P18 | L1 |
Automated Detection
Tool | Version | Checker | Description | ||||||
|---|---|---|---|---|---|---|---|---|---|
| Astrée |
| signal-handler-unsafe-call | Partially checked | ||||||
| Axivion Bauhaus Suite |
| CertC-SIG30 | |||||||
| CodeSonar |
| BADFUNC.SIGNAL | Use of signal | ||||||
| Compass/ROSE | Can detect violations of the rule for single-file programs | ||||||||
| Cppcheck Premium |
| premium-cert-sig30-c | |||||||
| Helix QAC |
| C2028, C2030 | |||||||
| Klocwork |
| CERT.SIG.SIG_HANDLER.ASYNC_SAFE | |||||||
| LDRA tool suite |
| 88 D, 89 D | Partially implemented | ||||||
| Parasoft C/C++test |
| CERT_C-SIG30-a | Properly define signal handlers | ||||||
| PC-lint Plus |
| 2670, 2761 | Fully supported | ||||||
| Checks for function called from signal handler not asynchronous-safe (rule fully covered) | ||||||||
| RuleChecker |
| signal-handler-unsafe-call | Partially checked | ||||||
| Splint |
|
...