diff options
| author | hexcoder- <heiko@hexco.de> | 2019-09-25 05:41:03 +0200 |
|---|---|---|
| committer | hexcoder- <heiko@hexco.de> | 2019-09-25 05:41:03 +0200 |
| commit | a7e45319c3e99bdd24505ffd960bf9c8a0d607d7 (patch) | |
| tree | c71e72f34581d4429b91993e51c31739a3e6a3cb /llvm_mode/README.neverzero.md | |
| parent | e18caef4f64d12980df41b19ba88ddcc4f76190b (diff) | |
| download | afl++-a7e45319c3e99bdd24505ffd960bf9c8a0d607d7.tar.gz | |
small docs updates typos, grammar, clarifications
Diffstat (limited to 'llvm_mode/README.neverzero.md')
| -rw-r--r-- | llvm_mode/README.neverzero.md | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/llvm_mode/README.neverzero.md b/llvm_mode/README.neverzero.md index 5fcf7b47..1e406560 100644 --- a/llvm_mode/README.neverzero.md +++ b/llvm_mode/README.neverzero.md @@ -2,17 +2,20 @@ ## Usage -In larger, complex or reiterative programs the map that collects the edge pairs -can easily fill up and wrap. -This is not that much of an issue - unless by chance it wraps just to a 0 -when the program execution ends. -In this case afl-fuzz is not able to see that the pair has been accessed and +In larger, complex or reiterative programs the counters that collect the edge +coverage can easily fill up and wrap around. +This is not that much of an issue - unless by chance it wraps just to a value +of zero when the program execution ends. +In this case afl-fuzz is not able to see that the edge has been accessed and will ignore it. -NeverZero prevents this behaviour. If a counter wraps, it jumps over the 0 -directly to a 1. This improves path discovery (by a very little amount) +NeverZero prevents this behaviour. If a counter wraps, it jumps over the value +0 directly to a 1. This improves path discovery (by a very little amount) at a very little cost (one instruction per edge). +(The alternative of saturated counters has been tested also and proved to be +inferior in terms of path discovery.) + This is implemented in afl-gcc, however for llvm_mode this is optional if the llvm version is below 9 - as there is a perfomance bug that is only fixed in version 9 and onwards. |
