When Long Jumps Fall Short: Control-Flow Tracking and Misuse Detection for Non-local Jumps in C

Michael Schwarz, Julian Erhard, Vesal Vojdani, Simmo Saan, Helmut Seidl

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

6 Scopus citations

Abstract

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.

Original languageEnglish
Title of host publicationSOAP 2023 - Proceedings of the 12th ACM SIGPLAN International Workshop on the State Of the Art in Program Analysis, Co-located with PLDI 2023
EditorsPietro Ferrara, Liana Hadarean
PublisherAssociation for Computing Machinery, Inc
Pages20-26
Number of pages7
ISBN (Electronic)9798400701702
DOIs
StatePublished - 6 Jun 2023
Event12th ACM SIGPLAN International Workshop on the State Of the Art in Program Analysis, SOAP 2023, co-located with the 44th ACM SIGPLAN International - Orlando, United States
Duration: 17 Jun 202317 Jun 2023

Publication series

NameSOAP 2023 - Proceedings of the 12th ACM SIGPLAN International Workshop on the State Of the Art in Program Analysis, Co-located with PLDI 2023

Conference

Conference12th ACM SIGPLAN International Workshop on the State Of the Art in Program Analysis, SOAP 2023, co-located with the 44th ACM SIGPLAN International
Country/TerritoryUnited States
CityOrlando
Period17/06/2317/06/23

Keywords

  • Abstract Interpretation
  • Side-Effects
  • Static Analysis
  • setjmp / longjmp

Fingerprint

Dive into the research topics of 'When Long Jumps Fall Short: Control-Flow Tracking and Misuse Detection for Non-local Jumps in C'. Together they form a unique fingerprint.

Cite this