C/C++ Bounds Checking with Low-Fat Pointers

Roland Yap

School of Computing, National University of Singapore

Abstract

Memory errors are still one of the main causes of software vulnerabilities and bugs. Low-Fat bounds checking is a new approach for detecting spatial memory errors (bounds errors) using a novel pointer representation, low-fat pointers. The main advantages of Low-Fat bounds checking are:

  • Compatibility: low-fat pointers look like ordinary pointers which helps to achieve high binary compatibility.
  • Speed: it is fast relative to many bounds-checking systems
  • Low Memory Usage: the memory overheads are low as very little meta-data is required.

More details and a prototype release of the Low-Fat bounds checker are on GitHub.


People

Roland Yap

Gregory Duck


Publications

  • Heap Bounds Protection with Low Fat Pointers [pdf]
    by Gregory J. Duck and Roland H. C. Yap
    International Conference on Compiler Construction (CC'16)
  • Stack Bounds Protection with Low Fat Pointers [pdf]
    by Gregory J. Duck, Roland H. C. Yap and Lorenzo Cavallaro
    The Network and Distributed System Security Symposium (NDSS'17)