...
Failure to enclose calls to the wait()
, wait_for()
, or wait_until()
member functions inside a while
loop can lead to indefinite blocking and denial of service (DoS).
Rule | Severity | Likelihood | Remediation Cost | Priority | Level |
---|---|---|---|---|---|
CON54-CPP | Low | Unlikely | Medium | P2 | L3 |
Automated Detection
Tool | Version | Checker | Description | ||||||
---|---|---|---|---|---|---|---|---|---|
CodeSonar |
| LANG.STRUCT.ICOL | Inappropriate Call Outside Loop | ||||||
Helix QAC |
| C++5019 | |||||||
Klocwork |
| CERT.CONC.WAKE_IN_LOOP | |||||||
Parasoft C/C++test |
| CERT_CPP-CON54-a | Wrap functions that can spuriously wake up in a loop | ||||||
Polyspace Bug Finder |
| CERT C++: CON54-CPP | Checks for situations where functions that can spuriously wake up are not wrapped in loop |
Related Vulnerabilities
Search for vulnerabilities resulting from the violation of this rule on the CERT website.
Related Guidelines
Bibliography
[ISO/IEC 9899:2011] | 7.17.7.4, "The atomic_compare_exchange Generic Functions" |
[Lea 2000] | 1.3.2, "Liveness" |
...
...