...
The effects of throwing an exception across execution boundaries depends on the implementation details of the exception-handling mechanics. They can range from correct or benign behavior to undefined behavior.
Rule | Severity | Likelihood |
|---|
Detectable | Repairable | Priority | Level |
|---|---|---|---|
ERR59-CPP | High | Probable |
No | No |
P6 |
L2 |
Automated Detection
Tool | Version | Checker | Description |
|---|
| Helix QAC |
| C++3809, C++3810 | |||||||
| Klocwork |
| CERT.EXCEPTION.OVER.BOUNDARY | |||||||
| CERT_CPP-ERR59-a | Do not throw an exception across execution boundaries | |||||||
| Polyspace Bug Finder |
| CERT C++: ERR59-CPP | Checks for exceptions raised from library interfaces (rule partially covered). | ||||||
| Security Reviewer - Static Reviewer |
| va_end_missing | Fully implemented |
Related Vulnerabilities
Search for other vulnerabilities resulting from the violation of this rule on the CERT website.
Related Guidelines
| CERT C++ Coding Standard | EXP60-CPP. Do not pass a nonstandard-layout type object across execution boundaries |
Bibliography
| [ISO/IEC 14882-2014] | Subclause15, "Exception Handling" |
...