Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of 2019
DOI: 10.1145/3338906.3338960
|View full text |Cite
|
Sign up to set email alerts
|

Effective error-specification inference via domain-knowledge expansion

Abstract: Error-handling code responds to the occurrence of runtime errors. Failure to correctly handle errors can lead to security vulnerabilities and data loss. This paper deals with error handling in software written in C that uses the return-code idiom: the presence and type of error is encoded in the return value of a function. This paper describes EESI, a static analysis that infers the set of values that a function can return on error. Such a function error-specification can then be used to identify bugs related … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2

Citation Types

0
2
0

Year Published

2020
2020
2024
2024

Publication Types

Select...
2
2
1

Relationship

1
4

Authors

Journals

citations
Cited by 5 publications
(2 citation statements)
references
References 24 publications
0
2
0
Order By: Relevance
“…In this work, our approach uses a testing oracle instead of a verifier for practical reasons (see also discussion regarding verification oracles in Section 3). There have been various approaches to mining specifications based on automata learning [Alur et al 2005;Ammons et al 2002;Henzinger et al 2005;Whaley et al 2002;Xie et al 2006] or dynamic and symbolic analysis [Astorga et al 2018;Csallner et al 2008;DeFreez et al 2019;Le et al 2019]. The predicate synthesis aspect of our work is similar to the PIE approach [Padhi et al 2016] that proposes feature expression synthesis in order to learn preconditions as well as loop invariants, but not strong/tight contracts.…”
Section: Related Workmentioning
confidence: 99%
“…In this work, our approach uses a testing oracle instead of a verifier for practical reasons (see also discussion regarding verification oracles in Section 3). There have been various approaches to mining specifications based on automata learning [Alur et al 2005;Ammons et al 2002;Henzinger et al 2005;Whaley et al 2002;Xie et al 2006] or dynamic and symbolic analysis [Astorga et al 2018;Csallner et al 2008;DeFreez et al 2019;Le et al 2019]. The predicate synthesis aspect of our work is similar to the PIE approach [Padhi et al 2016] that proposes feature expression synthesis in order to learn preconditions as well as loop invariants, but not strong/tight contracts.…”
Section: Related Workmentioning
confidence: 99%
“…None of the above analyses have been applied to MPI libraries, which differ from Linux in how error codes are transformed and handled. Other work [5,6,10,27,36] mines error-related specifications that can be used for bug detection in Linux and C libraries, but none of these have been used to find bugs in MPI libraries.…”
Section: Related Workmentioning
confidence: 99%