COMING SOON! PQDT Open is getting a new home!

ProQuest Open Access Dissertations & Theses will remain freely available as part of a new and enhanced search experience at

Questions? Please refer to this FAQ.

Dissertation/Thesis Abstract

Light-weight bounds checking
by Misra, Ashish, M.S., State University of New York at Stony Brook, 2010, 39; 1479996
Abstract (Summary)

Memory-related errors such as buffer overflows and dangling pointers remain one of the principle reasons for the failure of C programs. Such failures do not always manifest as program crashes but also as incorrect outputs. Well-tested programs do run error free in most cases, but studies have shown that even such programs can crash when presented with unexpected data. Out of bounds array and pointer accesses are an important subclass of memory-related errors. Despite many years of research in bounds-checking, current solutions are mostly deployed as debugging and testing aids. This is because the current techniques for bounds protection are either too performance intensive to be used in production software or are unable to process all valid C programs.

Hence, in this thesis, we present a backwards compatible lightweight bounds checking technique that aims to provide practical protection to C programs that can be deployed in production software. Our technique involves flanking memory objects with guard zones. We generate instrumentation to check that memory references do not access these guard zones. We are able to avoid some of the compatibility problems associated with previous bounds-checking techniques by avoiding pointer arithmetic checks, and instead relying on checks on the values of dereferenced pointers. To obtain good performance, we partition these runtime checks into two parts. The first part is always performed, and is very fast because it does not introduce additional memory dereferences. The more expensive second part is triggered only if the first check succeeds, which is relatively rare. We present an efficient implementation of our technique. Our results show that the technique has a relatively low overhead in CPU intensive benchmarks. Furthermore, by instrumenting real world applications, we prove the practical utility of our approach.

Supplemental Files

Some files may require a special program or browser plug-in. More Information

Indexing (document details)
Advisor: Sekar, Ram C.
Commitee: Johnson, Robert, Ramakrishnan, C. R.
School: State University of New York at Stony Brook
Department: Computer Science
School Location: United States -- New York
Source: MAI 49/01M, Masters Abstracts International
Subjects: Computer science
Keywords: Bounds checking
Publication Number: 1479996
ISBN: 978-1-124-16406-9
Copyright © 2021 ProQuest LLC. All rights reserved. Terms and Conditions Privacy Policy Cookie Policy