A differential approach to undefined behavior detection

9Citations
Citations of this article
37Readers
Mendeley users who have this article in their library.

Abstract

This article studies undefined behavior arising in systems programming languages such as C/C++. Undefined behavior bugs lead to unpredictable and subtle systems behavior, and their effects can be further amplified by compiler optimizations. Undefined behavior bugs are present inmany systems, including the Linux kernel and the Postgres database. The consequences range from incorrect functionality to missing security checks. This article proposes a formal and practical approach that finds undefined behavior bugs by finding "unstable code" in terms of optimizations that leverage undefined behavior. Using this approach, we introduce a new static checker called STACK that precisely identifies undefined behavior bugs. Applying STACK to widely used systems has uncovered 161 new bugs that have been confirmed and fixed by developers.

Cite

CITATION STYLE

APA

Wang, X., Zeldovich, N., Kaashoek, M. F., & Solar-Lezama, A. (2015). A differential approach to undefined behavior detection. In ACM Transactions on Computer Systems (Vol. 33). Association for Computing Machinery. https://doi.org/10.1145/2699678

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free