Commit Graph

252 Commits

Author SHA1 Message Date
Alexandre Oliva
9544b3dbf2 rewrite gcc plugin
When we started using AFL, it did not have an integrated GCC plugin.
There was one proposed by Austin Seipp, but for various reasons we
ended up using some of its infrastructure (runtime and wrapper), but
writing the GCC plugin proper from scratch.

With AFL++'s renewed interest in a GCC plugin, we rebased ours, with
some features that are or were missing in the one that was integrated:

* efficient, fully-functional inline and out-of-line instrumentation

Inline instrumentation was work in progress in the original plugin.
Controlled by AFL_GCC_OUT_OF_LINE.

* reproducible instrumentation

Obey -frandom-seed for pseudorandom number generation.

* licensing clarity and strict compliance

GPLv3+ for the plugin, that uses GCC internals; add a copy of the
license, as required.

* allow/deny list support

Copied and adjusted from the LLVM plugin implementation.

* neverZero support

Not as compact as the asm-wrapper version, but likely more efficient.
Both are quite thread-unsafe, with different caveats.
Controlled with AFL_GCC_SKIP_NEVERZERO.
2020-09-08 14:55:19 +02:00
vanhauser-thc
e30b2c6af6 final changes for pre-3.0 2020-09-05 13:18:28 +02:00
Dominik Maier
7470b475a9 Reworked maybe_grow to take a single ptr, renamed to afl_realloc (#505)
* maybe_grow takes a single ptr

* fixed use_deflate

* reworked maybe_grow_bufsize

* helper to access underlying buf

* remove redundant realloc_block

* code format

* fixes

* added unit tests

* renamed maybe_grow to afl_realloc

* BUF_PARAMS -> AFL_BUF_PARAM
2020-08-18 00:50:52 +02:00
Dominik Maier
c3a6e7e870 testcases indicate count 2020-08-14 00:20:04 +02:00
van Hauser
c270646722 fix wrong incomplete 2020-08-10 09:37:32 +02:00
hexcoder-
33141cf8a3 tests: cleanup core files, more time for llvm cmplog 2020-08-07 20:22:13 +02:00
hexcoder-
8551d8e48e Merge branch 'dev' of https://github.com/AFLplusplus/AFLplusplus into dev 2020-08-07 19:53:32 +02:00
hexcoder-
32558bc807 minor test fixes for Raspberry Pi Linux 64-bit 2020-08-07 19:41:39 +02:00
Dominik Maier
fd9a7e719d fixed wextra 2020-08-07 17:20:24 +02:00
hexcoder-
673ace2a4b test-llvm.sh: clear file errors after test 2020-08-07 16:34:10 +02:00
van Hauser
4a859aff70 travis fixes 2020-08-05 10:25:53 +02:00
van Hauser
f6c89ec3a9 workaround travis 2020-08-05 01:29:05 +02:00
Dominik Maier
79f873a597 posix compatible sourcing 2020-08-04 21:57:56 +02:00
Dominik Maier
8850e1a5bf chmod for testcase 2020-08-04 21:47:21 +02:00
Dominik Maier
194188fe56 split up testcases 2020-08-04 21:33:29 +02:00
van Hauser
cc74efa35e fix test for nixos 2020-08-04 15:10:20 +02:00
van Hauser
409e4ae945 fix expand havoc for ..._only modes 2020-08-03 13:13:32 +02:00
Andrea Fioraldi
9d82c3cf5e test for llvm cmplog 2020-08-03 11:30:34 +02:00
van Hauser
8ea19d4266 easier float test 2020-07-31 19:37:05 +02:00
van Hauser
b7bcc50c61 reenable cpu tests in test.sh 2020-07-31 19:09:04 +02:00
van Hauser
25ad992c62 fix travis 2020-07-31 18:26:18 +02:00
van Hauser
486e5365d9 fix float splitting if not on a tty 2020-07-30 18:01:18 +02:00
van Hauser
ea9ba53cdb fix oob reads, code-format 2020-07-30 17:09:22 +02:00
hexcoder-
cbe8f0a9d0 cleanup messages in floating point test case 2020-07-30 17:00:10 +02:00
van Hauser
da8b464e67 fix test.sh 2020-07-30 16:07:47 +02:00