New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[fuzzuf cc] Phase 3: Refine handling PUT process #64
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Fadis
reviewed
Apr 13, 2022
takada-s
approved these changes
Apr 14, 2022
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Implementation outline looks good and reasonable for me
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Type of PR
Related Issue
#52
Importance of PR
PR Overview
Problems to be solved
How to solve
Concerns (Optional)
I describe possible defects and follow those as follows:
(Poor quality; non-critical) File names of stdin/out/err used by LinuxForkServerExecutor and fuzzuf-cc's forkserver are directly written on each source code.
(No compatibility with original AFL) How to feed stdin and record stdout/err is entirely different from original AFL implementation (NativeLinuxExecutor).
(Known problem) PUT used in new unit test
linux_fork_server_run
lacks AFL's bitmap (compiled by gcc and instruments fuzzuf-cc's forkserver).(No so bad) Temporal files (used by PUT execution as stdin/out/err) locates in
/dev/shm
. These files are not deleted automatically.The following is out of scope:
Artifacts to confirm this PR solves problems
Unit test
Stdin/out/err of PUT is not regularly used by CLI's AFL, so it's nice if CI tests automatically this PR is ever works.
This PR introduces linux_fork_server_run as unit test.
linux_fork_server_run
checks PUT can read stdin fed by executor and executor can read stdout/err of PUT.Please check latest CI status to confirm this test is green.
Fuzzing as integration test
I confirmed that phase 2 is currently working. AFL for fuzzuf-cc (LinuxForkServer) is working!
Optional Entries
Mandatory Entries
Optional Entries
Mandatory Entries
Optional Entries
Mandatory Entries