2019 IEEE 30th International Symposium on Software Reliability Engineering (ISSRE) 2019
DOI: 10.1109/issre.2019.00022
|View full text |Cite
|
Sign up to set email alerts
|

Fuzzing Error Handling Code in Device Drivers Based on Software Fault Injection

Abstract: Device drivers remain a main source of runtime failures in operating systems. To detect bugs in device drivers, fuzzing has been commonly used in practice. However, a main limitation of existing fuzzing approaches is that they cannot effectively test error handling code. Indeed, these fuzzing approaches require effective inputs to cover target code, but much error handling code in drivers is triggered by occasional errors (such as insufficient memory and hardware malfunctions) that are not related to inputs. I… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
20
0

Year Published

2020
2020
2023
2023

Publication Types

Select...
7
2
1

Relationship

1
9

Authors

Journals

citations
Cited by 21 publications
(20 citation statements)
references
References 36 publications
0
20
0
Order By: Relevance
“…One potential solution is to use dynamic Principal Component Analysis [191] to reduce the dimensionality of the dataset [118]. Other solutions to improve the sensitivity of edge coverage include path hash [198], calling context [37,87,171], multilevel coverage [88], and code complexity [105], which add extra information for the edge coverage.…”
Section: Diverse Information For Fitnessmentioning
confidence: 99%
“…One potential solution is to use dynamic Principal Component Analysis [191] to reduce the dimensionality of the dataset [118]. Other solutions to improve the sensitivity of edge coverage include path hash [198], calling context [37,87,171], multilevel coverage [88], and code complexity [105], which add extra information for the edge coverage.…”
Section: Diverse Information For Fitnessmentioning
confidence: 99%
“…Some approaches [20,44,60,71] use coverage-guided fuzzing to test infrequently-executed code, by automatically mutating and generating system calls according to code coverage. Some approaches [6,18,41,62] perform software fault injection to test error handling code, by deliberately corrupting the return values of kernel-interface calls. By using exact runtime information about OS execution, dynamic analysis can effectively reduce false positives in bug detection.…”
Section: Dynamic Analysismentioning
confidence: 99%
“…GREYONE [14] utilized lightweight dynamic taint analysis to evaluate the constraint conformance on all tainted untouched branches, and prioritizing seeds which could reach these branches. FIFUZZ [15] proposed a context-sensitive SFI-based approach to guide fuzzing exploring error handling code.…”
Section: Seed Selectionmentioning
confidence: 99%