My Account Log in

2 options

Practical low-overhead enforcement of memory safety for C programs.

Connect to full text Available online

View online

Dissertations & Theses @ University of Pennsylvania Available online

View online
Format:
Book
Thesis/Dissertation
Author/Creator:
Nagarakatte, Santosh Ganapati.
Contributor:
Berger, Emery, committee member.
DeHon, André, committee member.
Zdancewic, Steve, committee member.
Alur, Rajeev, 1966- committee member.
Martin, Milo M. K., advisor.
University of Pennsylvania. Computer and Information Science.
Language:
English
Subjects (All):
Computer science.
Computer Science.
0984.
Penn dissertations--Computer and information science.
Computer and information science--Penn dissertations.
Local Subjects:
Computer Science.
Penn dissertations--Computer and information science.
Computer and information science--Penn dissertations.
0984.
Physical Description:
198 pages
Contained In:
Dissertation Abstracts International 74-06B(E).
System Details:
Mode of access: World Wide Web.
text file
Summary:
The serious bugs and security vulnerabilities that result from C's lack of bounds checking and unsafe manual memory management are well known, yet C remains in widespread use. Unfortunately, C's arbitrary pointer arithmetic, conflation of pointers and arrays, and programmer-visible memory layout make retrofitting C with memory safety guarantees challenging. Existing approaches suffer from incompleteness, have high runtime overhead, or require non-trivial changes to the C source code. Thus far, these deficiencies have prevented widespread adoption of such techniques.
This dissertation proposes mechanisms to provide comprehensive memory safety that works with mostly unmodified C code with a low performance overhead. We use a pointer-based approach where we maintain metadata with pointers and check every pointer dereference. To enable compatibility with existing code, we maintain the metadata for the pointers in memory in a disjoint metadata space leaving the memory layout of the program intact. For detecting spatial violations, we maintain bounds metadata with every pointer. For detecting temporal violations, we also maintain a unique identifier metadata with each pointer. This pointer metadata is propagated with pointer operations and checked on pointer dereferences. Coupling disjoint metadata with a pointer-based approach enables comprehensive detection of all memory safety violations in unmodified C programs. This dissertation demonstrates the compatibility of this approach by hardening legacy C/C++ code with minimal source code changes. Further, this dissertation shows the effectiveness of the approach by detecting new memory safety errors and previously known memory safety errors in large code bases. To attain low performance overheads, this dissertation proposes efficient instantiations of this approach (1) within a compiler, (2) within hardware, and (3) with a hybrid hardware accelerated compiler instrumentation that reduces the overhead of enforcing memory safety, and thereby enabling their use in deployed systems.
Notes:
Thesis (Ph.D. in Computer and Information Science) -- University of Pennsylvania, 2012.
Source: Dissertation Abstracts International, Volume: 74-06(E), Section: B.
Adviser: Milo M. K. Martin.
Local Notes:
School code: 0175.
ISBN:
9781267897862
Access Restriction:
Restricted for use by site license.

The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.

Find

Home Release notes

My Account

Shelf Request an item Bookmarks Fines and fees Settings

Guides

Using the Find catalog Using Articles+ Using your account