When the memory for an object is deallocated, pointers to that object become invalid. Such pointers, known as dangling pointers, can be exploited by attackers to cause undesirable or malicious program behavior. A pointer that points to memory that has been reused (reallocated) is known as a use-after-free pointer; these, too, are gateways to exploits. This disclosure describes techniques to detect the presence of dangling and use-after-free pointers in runtime and, upon detection, forestall security breaches due to such pointers by causing a program crash accompanied by a bug report. Per the techniques, both pointer and pointed-to object are augmented with metadata that enables, upon dereferencing, the checking of the validity of the pointer and the re-use status of the memory it points to.

Creative Commons License

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 License.