Authors
Santosh Nagarakatte, Jianzhou Zhao, Milo MK Martin, Steve Zdancewic
Publication date
2010/6/5
Book
Proceedings of the 2010 international symposium on Memory management
Pages
31-40
Description
Temporal memory safety errors, such as dangling pointer dereferences and double frees, are a prevalent source of software bugs in unmanaged languages such as C. Existing schemes that attempt to retrofit temporal safety for such languages have high runtime overheads and/or are incomplete, thereby limiting their effectiveness as debugging aids. This paper presents CETS, a compile-time transformation for detecting all violations of temporal safety in C programs. Inspired by existing approaches, CETS maintains a unique identifier with each object, associates this metadata with the pointers in a disjoint metadata space to retain memory layout compatibility, and checks that the object is still allocated on pointer dereferences. A formal proof shows that this is sufficient to provide temporal safety even in the presence of arbitrary casts if the program contains no spatial safety violations. Our CETS prototype employs …
Total citations
2011201220132014201520162017201820192020202120222023202479161042364961425242465628
Scholar articles
S Nagarakatte, J Zhao, MMK Martin, S Zdancewic - Proceedings of the 2010 international symposium on …, 2010