Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation 2014
DOI: 10.1145/2594291.2594337
|View full text |Cite
|
Sign up to set email alerts
|

Automatic runtime error repair and containment via recovery shepherding

Abstract: We present a system, RCV, for enabling software applications to survive divide-by-zero and null-dereference errors. RCV operates directly on off-the-shelf, production, stripped x86 binary executa-bles. RCV implements recovery shepherding, which attaches to the application process when an error occurs, repairs the execution, tracks the repair effects as the execution continues, contains the repair effects within the application process, and detaches from the process after all repair effects are flushed from the… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

1
29
0

Year Published

2015
2015
2022
2022

Publication Types

Select...
4
3

Relationship

2
5

Authors

Journals

citations
Cited by 51 publications
(30 citation statements)
references
References 29 publications
1
29
0
Order By: Relevance
“…No type checking is carried out on the synthesised monitors in either of these works. Runtime Adaptation through monitoring are also explored in [23,19] for C programs to attain "failure-oblivious computing" that can adapt to errors such as null-dereferencing through a technique called reverse shepherding. Again, no static analysis is performed on the monitors themselves.…”
Section: Resultsmentioning
confidence: 99%
“…No type checking is carried out on the synthesised monitors in either of these works. Runtime Adaptation through monitoring are also explored in [23,19] for C programs to attain "failure-oblivious computing" that can adapt to errors such as null-dereferencing through a technique called reverse shepherding. Again, no static analysis is performed on the monitors themselves.…”
Section: Resultsmentioning
confidence: 99%
“…(plen == 0))) { exit(-1); } Empirically, returning zero as the result of divide by zero errors often enables the application to continue to execute productively [40]. We therefore implemented an alternate strategy that returns 0 if the check fires rather than exiting.…”
Section: Wiresharkmentioning
confidence: 99%
“…It recompiles the application to discard out of bounds writes, manufacture values for out of bounds reads, and enable applications to continue along their normal execution paths. RCV [40] enables applications to dynamically recover from divide-by-zero and null-dereference errors. When such an error occurs, RCV attaches the application, applies a fix strategy that typically ignores the offending instruction, forces the application to continue along the normal execution path, contains the error repair effect, and detaches from the application once the repair succeeds.…”
Section: Related Workmentioning
confidence: 99%
“…Given a the ability to automatically expose errors via tools such as DIODE and the ability to automatically repair these errors via tools such as CodePhage [37] (as well as the ability to automatically generate repairs using techniques such as ClearView [27], Error Virtualization [35,36], FailureOblivious Computing [29], and RCV [23]), the next step is to build continuous automatic improvement systems that automatically search for errors and generate patches that repair the encountered errors. ClearView's automatic patch generation capability provides continuous improvement driven by responses to attacks and errors that users encounter in production use [27].…”
Section: Continuous Automatic Improvementmentioning
confidence: 99%
“…The first two checks occur in png_get_uint_31 (line 37), which checks that the PNG height and width values are less than 0x7fffffffL. The third and fourth sanity checks occur in png_check_IHDR (lines [21][22][23][24][25][26][27][28][29][30][31][32][33][34][35][36], which check that the PNG height and width values are less than one million. The fifth and final sanity check occurs at line 72, immediately before the target memory allocation site at line 87.…”
Section: Contributionsmentioning
confidence: 99%