When Long Jumps Fall Short: Control-Flow Tracking and Misuse Detection for Non-local Jumps in C
The C programming language offers setjmp/longjmp as a mechanism for non-local control flow. This mechanism has complicated semantics. As most developers do not encounter it day-to-day, they may be unfamiliar with all its intricacies – leading to subtle programming errors. At the same time, most static analyzers lack proper support, implying that otherwise sound tools miss whole classes of program deficiencies. We propose an approach for lifting existing interprocedural analyses to support setjmp/longjmp, as well as to flag their misuse. To deal with the non-local semantics, our approach leverages side-effecting transfer functions which, when executed, may trigger contributions to extra program points. We showcase our analysis on real-world examples and propose a set of litmus tests for other analyzers.
Sat 17 JunDisplayed time zone: Eastern Time (US & Canada) change
09:00 - 11:00 | SOAP: Session 1 - Static AnalysisSOAP at Magnolia 18 Chair(s): Vincenzo Arceri University of Parma, Italy | ||
09:00 30mTalk | Combining E-Graphs with Abstract Interpretation SOAP Samuel Coward Imperial College London, UK / Intel Corporation, George A. Constantinides Imperial College London, UK, Theo Drane Intel Corporation, USA DOI | ||
09:30 30mTalk | Static Analysis of Data Transformations in Jupyter Notebooks (Virtual) SOAP Luca Negrini Ca’ Foscari University of Venice, Corvallis S.r.l., Guruprerana Shabadi École Polytechnique, Institut Polytechnique de Paris, Caterina Urban Inria & École Normale Supérieure | Université PSL DOI | ||
10:00 30mTalk | Speeding up Static Analysis with the Split Operator SOAP Vincenzo Arceri University of Parma, Italy, Greta Dolcetti University of Parma - Department of Mathematical, Physical, and Computer Sciences, Enea Zaffanella University of Parma, Italy DOI | ||
10:30 30mTalk | When Long Jumps Fall Short: Control-Flow Tracking and Misuse Detection for Non-local Jumps in C SOAP Michael Schwarz Technische Universität München, Julian Erhard Technical University of Munich, Vesal Vojdani University of Tartu, Simmo Saan University of Tartu, Estonia, Helmut Seidl Technische Universität München DOI Media Attached |