aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Maier <domenukk@gmail.com>2020-04-10 14:34:24 +0200
committerDominik Maier <domenukk@gmail.com>2020-04-10 14:34:24 +0200
commite51b4700e2cddea8d46375e1cf7c5937aa253972 (patch)
treeaa62f65fe0203ae3f427ef1758c8eb85f76a2a5c
parent0b9f7c4c895c9db6195deee3e48aa21e6bb7f5ab (diff)
parentac2f0c9896f507ddbd92cdcfbcc9615b6cf12b36 (diff)
downloadafl++-e51b4700e2cddea8d46375e1cf7c5937aa253972.tar.gz
Merge branch 'dev' of github.com:aflplusplus/aflplusplus into dev
-rw-r--r--libtokencap/GNUmakefile63
-rw-r--r--qemu_mode/unsigaction/GNUmakefile34
-rw-r--r--src/afl-fuzz-init.c13
-rwxr-xr-xtest/test.sh2
4 files changed, 12 insertions, 100 deletions
diff --git a/libtokencap/GNUmakefile b/libtokencap/GNUmakefile
deleted file mode 100644
index 5fcd7731..00000000
--- a/libtokencap/GNUmakefile
+++ /dev/null
@@ -1,63 +0,0 @@
-#
-# american fuzzy lop++ - libtokencap
-# --------------------------------
-#
-# Originally written by Michal Zalewski
-#
-# Copyright 2016 Google Inc. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-
-PREFIX ?= /usr/local
-HELPER_PATH = $(PREFIX)/lib/afl
-DOC_PATH ?= $(PREFIX)/share/doc/afl
-MAN_PATH ?= $(PREFIX)/man/man8
-
-VERSION = $(shell grep '^\#define VERSION ' ../config.h | cut -d '"' -f2)
-
-CFLAGS ?= -O3 -funroll-loops
-override CFLAGS += -I ../include/ -Wall -D_FORTIFY_SOURCE=2 -g -Wno-pointer-sign
-
-ifeq "$(shell uname)" "Linux"
- TARGETS = libtokencap.so
- LDFLAGS += -ldl
-endif
-ifeq "$(shell uname)" "Darwin"
- TARGETS = libtokencap.so
- LDFLAGS += -ldl
-endif
-ifeq "$(shell uname)" "FreeBSD"
- TARGETS = libtokencap.so
-endif
-ifeq "$(shell uname)" "OpenBSD"
- TARGETS = libtokencap.so
-endif
-ifeq "$(shell uname)" "NetBSD"
- TARGETS = libtokencap.so
-endif
-ifeq "$(shell uname)" "DragonFly"
- TARGETS = libtokencap.so
- LDFLAGS += -ldl
-endif
-all: $(TARGETS)
-
-VPATH = ..
-libtokencap.so: libtokencap.so.c ../config.h
- $(CC) $(CFLAGS) -shared -fPIC $< -o ../$@ $(LDFLAGS)
-
-.NOTPARALLEL: clean
-
-clean:
- rm -f *.o *.so *~ a.out core core.[1-9][0-9]*
- rm -f ../libtokencap.so
-
-install: all
- install -m 755 -d $${DESTDIR}$(HELPER_PATH)
- install -m 755 ../libtokencap.so $${DESTDIR}$(HELPER_PATH)
- install -m 644 -T README.md $${DESTDIR}$(DOC_PATH)/README.tokencap.md
-
diff --git a/qemu_mode/unsigaction/GNUmakefile b/qemu_mode/unsigaction/GNUmakefile
deleted file mode 100644
index 31fa8c55..00000000
--- a/qemu_mode/unsigaction/GNUmakefile
+++ /dev/null
@@ -1,34 +0,0 @@
-#
-# american fuzzy lop++ - unsigaction
-# --------------------------------
-#
-# Written by Andrea Fioraldi <andreafioraldi@gmail.com>
-#
-# Copyright 2019-2020 Andrea Fioraldi. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-
-ifndef AFL_NO_X86
-
-all: lib_i386 lib_amd64
-
-lib_i386:
- @$(CC) -m32 -fPIC -shared unsigaction.c -o unsigaction32.so 2>/dev/null ; if [ "$$?" = "0" ]; then echo "unsigaction32 build success"; else echo "unsigaction32 build failure (that's fine)"; fi
-
-lib_amd64:
- $(CC) -fPIC -shared unsigaction.c -o unsigaction64.so
-
-clean:
- rm -f unsigaction32.so unsigaction64.so
-
-else
-
-all:
- @echo "[!] Note: skipping compilation of unsigaction (AFL_NO_X86 set)."
-
-endif
diff --git a/src/afl-fuzz-init.c b/src/afl-fuzz-init.c
index efdde463..ce30e599 100644
--- a/src/afl-fuzz-init.c
+++ b/src/afl-fuzz-init.c
@@ -134,8 +134,17 @@ void bind_to_free_cpu(afl_state_t *afl) {
for (i = 0; i < proccount; i++) {
#if defined(__FreeBSD__)
- if (procs[i].ki_oncpu < sizeof(cpu_used) && procs[i].ki_pctcpu > 60)
- cpu_used[procs[i].ki_oncpu] = 1;
+ if (!strcmp(procs[i].ki_comm, "idle"))
+ continue;
+
+ // fix when ki_oncpu = -1
+ int oncpu;
+ oncpu = procs[i].ki_oncpu;
+ if (oncpu == -1)
+ oncpu = procs[i].ki_lastcpu;
+
+ if (oncpu != -1 && oncpu < sizeof(cpu_used) && procs[i].ki_pctcpu > 60)
+ cpu_used[oncpu] = 1;
#elif defined(__DragonFly__)
if (procs[i].kp_lwp.kl_cpuid < sizeof(cpu_used) &&
procs[i].kp_lwp.kl_pctcpu > 10)
diff --git a/test/test.sh b/test/test.sh
index c673337e..bc89ff43 100755
--- a/test/test.sh
+++ b/test/test.sh
@@ -185,7 +185,7 @@ test "$SYS" = "i686" -o "$SYS" = "x86_64" -o "$SYS" = "amd64" -o "$SYS" = "i86pc
esac
rm -f in2/in*
export AFL_QUIET=1
- if type bash >/dev/null ; then {
+ if command -v bash >/dev/null ; then {
AFL_PATH=`pwd`/.. ../afl-cmin.bash -m ${MEM_LIMIT} -i in -o in2 -- ./test-instr.plain >/dev/null
CNT=`ls in2/* 2>/dev/null | wc -l`
case "$CNT" in