...
Passing a pointer value to a deallocation function that was not previously obtained by the matching allocation function results in undefined behavior, which can lead to exploitable vulnerabilities.
Rule | Severity | Likelihood | Detectable | RepairableRemediation Cost | Priority | Level |
|---|---|---|---|---|---|---|
MEM56-CPP | High | Likely | No | MediumNo | P18P9 | L1L2 |
Automated Detection
Tool | Version | Checker | Description | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Astrée |
| dangling_pointer_use | |||||||||||
| Axivion Bauhaus Suite |
| CertC++-MEM56 | |||||||||||
| Helix QAC |
| DF4721, DF4722, DF4723 | |||||||||||
| Klocwork |
| CERT.MEM.SMART_PTR.OWNED CERT.MEM.SMART_PTR.OWNED.THIS | |||||||||||
| Parasoft C/C++test |
| CERT_CPP-MEM56-a | Do not store an already-owned pointer value in an unrelated smart pointer | ||||||||||
| Polyspace Bug Finder |
| CERT C++: MEM56-CPP | Checks for use of already-owned pointers (rule fully covered) | ||||||||||
| 6.22 | V1006
| |||||||||||
| va_start_subsequentCalls | Fully implemented |
Related Vulnerabilities
Search for other vulnerabilities resulting from the violation of this rule on the CERT website.
...