...
Using improperly aligned pointers results in undefined behavior, typically leading to abnormal termination.
Rule | Severity | Likelihood | Remediation Cost | Priority | Level |
---|---|---|---|---|---|
MEM57-CPP | Medium | Unlikely | Low | P6 | L2 |
Automated Detection
Tool | Version | Checker | Description |
---|
Astrée |
| default-new-overaligned-type | Fully checked | ||||||
Helix QAC |
| C++3129 | |||||||
Parasoft C/C++test |
| CERT_CPP-MEM57-a | Avoid using the default operator 'new' for over-aligned types | ||||||
Polyspace Bug Finder |
| CERT C++: MEM57-CPP | Checks for situations where operator new is not overloaded for possibly overaligned types (rule fully covered) | ||||||
RuleChecker |
| default-new-overaligned-type | Fully checked |
Related Vulnerabilities
Search for vulnerabilities resulting from the violation of this rule on the CERT website.
Related Guidelines
SEI CERT C++ Coding Standard | MEM54-CPP. Provide placement new with properly aligned pointers to sufficient storage capacity |
Bibliography
[ISO/IEC 14882-2014] | Subclause 3.7.4, "Dynamic Storage Duration" |
[CodeSourcery 2016a] | Itanium C++ ABI, version 1.86 |
[INCITS 2012] | Dynamic memory allocation for over-aligned data, WG14 proposal |
...
...