23 Commits

Author SHA1 Message Date
vanhauser-thc
35f09e11a4 welcome 2023 2023-01-03 09:38:07 +01:00
vanhauser-thc
e6e82948bf fastexit + code format 2022-10-11 08:53:49 +02:00
hexcoder-
ed54532f29 make gcc_plugin compilable for gcc 3.6.0 2022-09-23 23:19:10 +02:00
vanhauser-thc
b847e0f414 clang format 14 2022-07-12 09:04:54 +02:00
vanhauser-thc
1334851e7c cmplog support for gcc_plugin by adacore 2022-07-04 09:59:47 +02:00
Marc Poulhiès
396de6fc9c Fix GCC plugin crash when using deny/allow list
The provided function declaration F may not have valid location
information. Return an empty string in this case as the two callers are
already using this convention to filter out functions from being
instrumented when deny/allow list are used.
2022-04-08 09:50:08 +02:00
vanhauser-thc
e1082f2548 welcome 2022 2022-01-01 00:49:17 +01:00
vanhauser-thc
9325a4fcbb http->https 2021-11-06 10:28:22 +01:00
David CARLIER
c3b19f5bf8
instrumentation further move to C++11 (#900) 2021-05-06 15:59:29 +02:00
van Hauser
813627cbd3 better gcc_plugin error msg 2021-01-08 13:01:46 +01:00
van Hauser
1827c65596 better gcc_plugin error msg 2021-01-08 12:55:05 +01:00
van Hauser
59b86b0db0 haiku fix 2021-01-05 19:20:10 +01:00
hexcoder-
7f4b3a460a more code cleanup (instrumentation) 2021-01-04 22:23:04 +01:00
van Hauser
98ee17bc47 fix endless loop in afl-cc allow/blocklists starting a line with a comment 2020-12-20 14:30:06 +01:00
van Hauser
6e0aeb9833 allow instrumenting LLVMFuzzerTestOneInput 2020-12-15 18:17:55 +01:00
van Hauser
e769102491 more DEBUGF 2020-11-30 21:54:18 +01:00
hexcoder-
9e3b818c35 fix warning on Debian 32 bit 2020-10-29 18:47:00 +01:00
Dominik Maier
7f94fe3587 code format 2020-09-13 14:26:57 +02:00
hexcoder-
38e6de1eff portability: make new gcc-plugin compilable under Ubuntu 16.04 (gcc 5.4.0) 2020-09-11 21:46:20 +02:00
van Hauser
9b6564f0a3 fix for gcc_plugin 2020-09-09 09:36:27 +02:00
van Hauser
ab744abc4b code-format 2020-09-08 17:54:01 +02:00
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
996986bed5 first batch of changes 2020-09-05 12:11:48 +02:00