aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvan Hauser <vh@thc.org>2020-06-13 10:58:30 +0200
committervan Hauser <vh@thc.org>2020-06-13 10:58:30 +0200
commit1542c7f49c00cd7d701869f951b9a2a126a7b960 (patch)
tree9a31f02e924254e405b2c563efb38f0fc5eaba5f
parent615ab1a7b80a7d2ae827240313f4a68d76364cf6 (diff)
downloadafl++-1542c7f49c00cd7d701869f951b9a2a126a7b960.tar.gz
fix typos
-rw-r--r--docs/Changelog.md27
-rw-r--r--include/hash.h2
-rw-r--r--src/afl-performance.c20
3 files changed, 29 insertions, 20 deletions
diff --git a/docs/Changelog.md b/docs/Changelog.md
index 751dd707..caf262fc 100644
--- a/docs/Changelog.md
+++ b/docs/Changelog.md
@@ -11,13 +11,13 @@ sending a mail to <afl-users+subscribe@googlegroups.com>.
### Version ++2.65d (dev)
- afl-fuzz:
- - -S secondary nodes now only sync from the main node to increase performance,
- the -M main node still syncs from everyone. Added checks that ensure
- exactly one main node is present and warn otherwise
- - If no main node is present at a sync one secondary node automatically becomes
- a temporary main node until a real main nodes shows up
- - switched murmur2 hashing and random() for xxh3 and xoshiro256**, giving up to 5.5% speed
- increase
+ - -S secondary nodes now only sync from the main node to increase
+ performance, the -M main node still syncs from everyone. Added checks
+ that ensure exactly one main node is present and warn otherwise
+ - If no main node is present at a sync one secondary node automatically
+ becomes a temporary main node until a real main nodes shows up
+ - switched murmur2 hashing and random() for xxh3 and xoshiro256**,
+ resulting in an up to 5.5% speed increase
- Resizing the window does not crash afl-fuzz anymore
- fix/update to MOpt (thanks to arnow117)
- added MOpt dictionary support from repo
@@ -26,10 +26,10 @@ sending a mail to <afl-users+subscribe@googlegroups.com>.
better coverage. The original afl instrumentation can be set via
AFL_LLVM_INSTRUMENT=AFL. This is automatically done when the WHITELIST
feature is used.
- - some targets want a ld variant for LD that is not gcc/clang but ld, added
- afl-ld-lto to solve this
- - lowered minimum required llvm version to 3.4 (except LLVMInsTrim,
- which needs 3.8.0)
+ - some targets want a ld variant for LD that is not gcc/clang but ld,
+ added afl-ld-lto to solve this
+ - lowered minimum required llvm version to 3.4 (except LLVMInsTrim, which
+ needs 3.8.0)
- WHITELIST feature now supports wildcards (thanks to sirmc)
- small change to cmplog to make it work with current llvm 11-dev
- added AFL_LLVM_LAF_ALL, sets all laf-intel settings
@@ -41,6 +41,7 @@ sending a mail to <afl-users+subscribe@googlegroups.com>.
- enable snapshot lkm also for persistent mode
- Unicornafl
- Added powerPC support from unicorn/next
+ - rust bindings!
- persistent mode shared memory testcase handover (instead of via
files/stdin) - 10-100% performance increase
- General support for 64 bit PowerPC, RiscV, Sparc etc.
@@ -49,8 +50,8 @@ sending a mail to <afl-users+subscribe@googlegroups.com>.
the same second
- added lots of dictionaries from oss-fuzz, go-fuzz and Jakub Wilk
- added former post_library examples to examples/custom_mutators/
- - Dockerfile upgraded to Ubuntu 20.04 Focal and installing llvm 11 and gcc 10
- so afl-clang-lto can be build
+ - Dockerfile upgraded to Ubuntu 20.04 Focal and installing llvm 11 and
+ gcc 10 so afl-clang-lto can be build
### Version ++2.65c (release):
diff --git a/include/hash.h b/include/hash.h
index 09dabb59..6910e0e2 100644
--- a/include/hash.h
+++ b/include/hash.h
@@ -35,7 +35,7 @@ u64 hash64(const void *key, u32 len, u64 seed);
#if 0
-The following code is disabled because xxh3 with a 32 bit resukt is 30% faster
+The following code is disabled because xxh3 is 30% faster
#ifdef __x86_64__
diff --git a/src/afl-performance.c b/src/afl-performance.c
index 7a911ffd..28564eb8 100644
--- a/src/afl-performance.c
+++ b/src/afl-performance.c
@@ -1,10 +1,11 @@
-/* Written in 2019 by David Blackman and Sebastiano Vigna (vigna@acm.org)
+/*
+ Written in 2019 by David Blackman and Sebastiano Vigna (vigna@acm.org)
-To the extent possible under law, the author has dedicated all copyright
-and related and neighboring rights to this software to the public domain
-worldwide. This software is distributed without any warranty.
+ To the extent possible under law, the author has dedicated all copyright
+ and related and neighboring rights to this software to the public domain
+ worldwide. This software is distributed without any warranty.
-See <http://creativecommons.org/publicdomain/zero/1.0/>.
+ See <http://creativecommons.org/publicdomain/zero/1.0/>.
This is xoshiro256++ 1.0, one of our all-purpose, rock-solid generators.
It has excellent (sub-ns) speed, a state (256 bits) that is large
@@ -15,13 +16,17 @@ See <http://creativecommons.org/publicdomain/zero/1.0/>.
The state must be seeded so that it is not everywhere zero. If you have
a 64-bit seed, we suggest to seed a splitmix64 generator and use its
- output to fill s. */
+ output to fill s[].
+*/
#include <stdint.h>
#include "afl-fuzz.h"
#include "types.h"
#include "xxh3.h"
+/* we use xoshiro256** instead of rand/random because it is 10x faster and has
+ better randomness properties. */
+
static inline uint64_t rotl(const uint64_t x, int k) {
return (x << k) | (x >> (64 - k));
@@ -122,6 +127,9 @@ void long_jump(afl_state_t *afl) {
}
+/* we switch from afl's murmur implementation to xxh3 as it is 30% faster -
+ and get 64 bit hashes instead of just 32 bit. Less collisions! :-) */
+
u32 hash32(const void *key, u32 len, u32 seed) {
return XXH64(key, len, seed) % 0x100000000;