aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvan Hauser <vh@thc.org>2022-05-23 13:44:42 +0200
committerGitHub <noreply@github.com>2022-05-23 13:44:42 +0200
commitba3c7bfe40f9b17a691958e3525828385127ad25 (patch)
treec90ae3644f9bb928798aa6fc326e3d67f8c59a03
parenta2eb1f14126cffd046c44d5e87e945ed2699cec5 (diff)
parent5ad760a77b0fea14a63c471f3fb0e3ffa85a222a (diff)
downloadAFLplusplus-ba3c7bfe40f9b17a691958e3525828385127ad25.tar.gz
Merge pull request #1420 from AFLplusplus/dev
push to stable
-rw-r--r--GNUmakefile2
-rw-r--r--GNUmakefile.llvm10
-rw-r--r--TODO.md1
-rw-r--r--docs/Changelog.md1
-rw-r--r--src/afl-fuzz-state.c1
5 files changed, 12 insertions, 3 deletions
diff --git a/GNUmakefile b/GNUmakefile
index 8b09c51a..072bd09d 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -387,7 +387,7 @@ test_x86:
@echo "[*] Testing the PATH environment variable..."
@test "$${PATH}" != "$${PATH#.:}" && { echo "Please remove current directory '.' from PATH to avoid recursion of 'as', thanks!"; echo; exit 1; } || :
@echo "[*] Checking for the ability to compile x86 code..."
- @echo 'main() { __asm__("xorb %al, %al"); }' | $(CC) $(CFLAGS) $(LDFLAGS) -w -x c - -o .test1 || ( echo; echo "Oops, looks like your compiler can't generate x86 code."; echo; echo "Don't panic! You can use the LLVM or QEMU mode, but see docs/INSTALL first."; echo "(To ignore this error, set AFL_NO_X86=1 and try again.)"; echo; exit 1 )
+ @echo 'int main() { __asm__("xorb %al, %al"); }' | $(CC) $(CFLAGS) $(LDFLAGS) -w -x c - -o .test1 || ( echo; echo "Oops, looks like your compiler can't generate x86 code."; echo; echo "Don't panic! You can use the LLVM or QEMU mode, but see docs/INSTALL first."; echo "(To ignore this error, set AFL_NO_X86=1 and try again.)"; echo; exit 1 )
@rm -f .test1
else
test_x86:
diff --git a/GNUmakefile.llvm b/GNUmakefile.llvm
index 538ca4a2..e775ca98 100644
--- a/GNUmakefile.llvm
+++ b/GNUmakefile.llvm
@@ -46,7 +46,7 @@ LLVMVER = $(shell $(LLVM_CONFIG) --version 2>/dev/null | sed 's/git//' | sed 's
LLVM_MAJOR = $(shell $(LLVM_CONFIG) --version 2>/dev/null | sed 's/\..*//' )
LLVM_MINOR = $(shell $(LLVM_CONFIG) --version 2>/dev/null | sed 's/.*\.//' | sed 's/git//' | sed 's/svn//' | sed 's/ .*//' )
LLVM_UNSUPPORTED = $(shell $(LLVM_CONFIG) --version 2>/dev/null | egrep -q '^[0-2]\.|^3.[0-7]\.' && echo 1 || echo 0 )
-LLVM_TOO_NEW = $(shell $(LLVM_CONFIG) --version 2>/dev/null | egrep -q '^1[4-9]' && echo 1 || echo 0 )
+LLVM_TOO_NEW = $(shell $(LLVM_CONFIG) --version 2>/dev/null | egrep -q '^1[5-9]' && echo 1 || echo 0 )
LLVM_NEW_API = $(shell $(LLVM_CONFIG) --version 2>/dev/null | egrep -q '^1[0-9]' && echo 1 || echo 0 )
LLVM_10_OK = $(shell $(LLVM_CONFIG) --version 2>/dev/null | egrep -q '^1[1-9]|^10\.[1-9]|^10\.0.[1-9]' && echo 1 || echo 0 )
LLVM_HAVE_LTO = $(shell $(LLVM_CONFIG) --version 2>/dev/null | egrep -q '^1[1-9]' && echo 1 || echo 0 )
@@ -86,6 +86,12 @@ ifeq "$(LLVM_TOO_OLD)" "1"
$(shell sleep 1)
endif
+ifeq "$(LLVM_MAJOR)" "15"
+ $(info [!] llvm_mode detected llvm 15, which is currently broken for LTO plugins.)
+ LLVM_LTO = 0
+ LLVM_HAVE_LTO = 0
+endif
+
ifeq "$(LLVM_HAVE_LTO)" "1"
$(info [+] llvm_mode detected llvm 11+, enabling afl-lto LTO implementation)
LLVM_LTO = 1
@@ -93,7 +99,7 @@ ifeq "$(LLVM_HAVE_LTO)" "1"
endif
ifeq "$(LLVM_LTO)" "0"
- $(info [+] llvm_mode detected llvm < 11, afl-lto LTO will not be build.)
+ $(info [+] llvm_mode detected llvm < 11 or llvm 15, afl-lto LTO will not be build.)
endif
ifeq "$(LLVM_APPLE_XCODE)" "1"
diff --git a/TODO.md b/TODO.md
index 8e77ee10..99d2c419 100644
--- a/TODO.md
+++ b/TODO.md
@@ -2,6 +2,7 @@
## Should
+ - better documentation for custom mutators
- better autodetection of shifting runtime timeout values
- Update afl->pending_not_fuzzed for MOpt
- afl-plot to support multiple plot_data
diff --git a/docs/Changelog.md b/docs/Changelog.md
index b6271a22..b18bf30f 100644
--- a/docs/Changelog.md
+++ b/docs/Changelog.md
@@ -33,6 +33,7 @@ sending a mail to <afl-users+subscribe@googlegroups.com>.
- fix custom mutator post_process functionality
- document and auto-activate pizza mode on condition
- afl-cc:
+ - due a bug in lld of llvm 15 LTO instrumentation wont work atm :-(
- converted all passed to use the new llvm pass manager for llvm 11+
- AFL++ PCGUARD mode is not available for 10.0.1 anymore (11+ only)
- trying to stay on top on all these #$&ยง!! changes in llvm 15 ...
diff --git a/src/afl-fuzz-state.c b/src/afl-fuzz-state.c
index 47e39762..98217438 100644
--- a/src/afl-fuzz-state.c
+++ b/src/afl-fuzz-state.c
@@ -592,6 +592,7 @@ void afl_state_deinit(afl_state_t *afl) {
if (afl->sync_id) { ck_free(afl->out_dir); }
if (afl->pass_stats) { ck_free(afl->pass_stats); }
if (afl->orig_cmp_map) { ck_free(afl->orig_cmp_map); }
+ if (afl->cmplog_binary) { ck_free(afl->cmplog_binary); }
afl_free(afl->queue_buf);
afl_free(afl->out_buf);