Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 10 Apr 2020 05:41:51 +0000 (UTC)
From:      Tobias Kortkamp <tobik@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r531292 - in head/security/afl++: . files
Message-ID:  <202004100541.03A5fpDf009834@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: tobik
Date: Fri Apr 10 05:41:51 2020
New Revision: 531292
URL: https://svnweb.freebsd.org/changeset/ports/531292

Log:
  security/afl++: Update to 2.63c
  
  Changes:	https://github.com/AFLplusplus/AFLplusplus/releases/tag/2.63c

Added:
  head/security/afl++/files/patch-test_test.sh   (contents, props changed)
Modified:
  head/security/afl++/Makefile
  head/security/afl++/distinfo
  head/security/afl++/files/Makefile.extra
  head/security/afl++/pkg-descr
  head/security/afl++/pkg-plist

Modified: head/security/afl++/Makefile
==============================================================================
--- head/security/afl++/Makefile	Fri Apr 10 05:41:06 2020	(r531291)
+++ head/security/afl++/Makefile	Fri Apr 10 05:41:51 2020	(r531292)
@@ -2,7 +2,7 @@
 # $FreeBSD$
 
 PORTNAME=	afl
-PORTVERSION=	2.62c
+PORTVERSION=	2.63c
 CATEGORIES=	security
 PKGNAMESUFFIX=	++
 
@@ -15,13 +15,15 @@ LICENSE_FILE=	${WRKSRC}/docs/COPYING
 ONLY_FOR_ARCHS=	aarch64 amd64 i386 powerpc64
 ONLY_FOR_ARCHS_REASON=	uses x86-only instrumentation or requires complete LLVM support
 
+BUILD_DEPENDS=	ginstall:sysutils/coreutils
 TEST_DEPENDS=	bash:shells/bash
 
 USES=		gmake tar:tgz
 USE_GITHUB=	yes
-GH_ACCOUNT=	vanhauser-thc
+GH_ACCOUNT=	AFLplusplus
 GH_PROJECT=	AFLplusplus
 
+MAKEFILE=	GNUmakefile
 MAKE_ARGS=	STRIP_CMD="${STRIP_CMD}"
 ALL_TARGET=	all libtokencap
 INSTALL_TARGET=	install-strip
@@ -29,6 +31,8 @@ TEST_TARGET=	test_build
 
 CONFLICTS_INSTALL=	afl
 
+BINARY_ALIAS=	install=ginstall
+
 OPTIONS_DEFINE=		DEBUG DOCS EXAMPLES GCC LIBDISLOCATOR LLVM PYTHON
 OPTIONS_DEFAULT=	GCC LIBDISLOCATOR LLVM PYTHON
 
@@ -56,7 +60,8 @@ LIBDISLOCATOR_ALL_TARGET=	libdislocator
 
 LLVM_BUILD_DEPENDS=	clang${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT}
 LLVM_RUN_DEPENDS=	clang${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT}
-LLVM_MAKE_ARGS=		CC=clang${LLVM_DEFAULT} \
+LLVM_MAKE_ARGS=		_AFL_REAL_LD=${LOCALBASE}/bin/ld.lld${LLVM_DEFAULT} \
+			CC=clang${LLVM_DEFAULT} \
 			CXX=clang++${LLVM_DEFAULT} \
 			LLVM_CONFIG=llvm-config${LLVM_DEFAULT}
 LLVM_ALL_TARGET=	llvm_mode
@@ -86,15 +91,14 @@ post-patch:
 # jails works by default.  afl needs shmget() which usually isn't
 # available in jails.
 	@${REINPLACE_CMD} 's@^\(all.*\) test_build@\1@' \
-		${WRKSRC}/Makefile \
-		${WRKSRC}/gcc_plugin/Makefile \
-		${WRKSRC}/llvm_mode/Makefile
+		${WRKSRC}/${MAKEFILE} \
+		${WRKSRC}/gcc_plugin/GNUmakefile \
+		${WRKSRC}/llvm_mode/GNUmakefile
 .if ${ARCH} == "i386"
 	@${REINPLACE_CMD} 's@\(  as_params\[0\] = afl_as ? afl_as : \)\(.*\)@\1(u8*)"${LOCALBASE}/bin/as";@' \
 		${WRKSRC}/src/afl-as.c
 .endif
-	@${REINPLACE_CMD} '/export AFL_CC/d' ${WRKSRC}/test/test.sh
-	@${ECHO_CMD} "include ${FILESDIR}/Makefile.extra" >> ${WRKSRC}/Makefile
+	@${ECHO_CMD} "include ${FILESDIR}/Makefile.extra" >> ${WRKSRC}/${MAKEFILE}
 
 post-patch-LLVM-on:
 	@${REINPLACE_CMD} \
@@ -110,6 +114,11 @@ post-install:
 		${FIND} lib/afl -name 'argvfuzz*.so' -or -name 'socketfuzz*.so' \
 		>> ${TMPPLIST}
 
+post-install-EXAMPLES-on:
+	@${MKDIR} ${STAGEDIR}${EXAMPLESDIR}/custom_mutators
+	@cd ${WRKSRC}/examples && \
+		${COPYTREE_SHARE} custom_mutators ${STAGEDIR}${EXAMPLESDIR}
+
 post-install-GCC-on:
 	@${MKDIR} ${STAGEDIR}${DOCSDIR}/gcc_plugin
 	${INSTALL_MAN} ${WRKSRC}/gcc_plugin/README.* \
@@ -125,13 +134,8 @@ post-install-LLVM-on:
 	${INSTALL_MAN} ${WRKSRC}/llvm_mode/README.* \
 		${STAGEDIR}${DOCSDIR}/llvm_mode
 
-post-install-PYTHON-on:
-	@${MKDIR} ${STAGEDIR}${EXAMPLESDIR}/python_mutators
-	@cd ${WRKSRC}/examples && \
-		${COPYTREE_SHARE} python_mutators ${STAGEDIR}${EXAMPLESDIR}
-
 post-test:
 # libtokencap test might require security.bsd.unprivileged_proc_debug=1
-	@cd ${WRKSRC}/test && ./test.sh
+	@cd ${WRKSRC}/test && ${SETENV} AFL_PATH=${WRKSRC} ./test.sh
 
 .include <bsd.port.mk>

Modified: head/security/afl++/distinfo
==============================================================================
--- head/security/afl++/distinfo	Fri Apr 10 05:41:06 2020	(r531291)
+++ head/security/afl++/distinfo	Fri Apr 10 05:41:51 2020	(r531292)
@@ -1,3 +1,3 @@
-TIMESTAMP = 1582866765
-SHA256 (vanhauser-thc-AFLplusplus-2.62c_GH0.tar.gz) = cde181ac733aa3a1212ffcb494bb9306a2086c7521fb006719b0e15cd8015c63
-SIZE (vanhauser-thc-AFLplusplus-2.62c_GH0.tar.gz) = 1272000
+TIMESTAMP = 1586436254
+SHA256 (AFLplusplus-AFLplusplus-2.63c_GH0.tar.gz) = 9c314899015620a9e57054f15f3fed29104c0f762098e30707267ef70be1add8
+SIZE (AFLplusplus-AFLplusplus-2.63c_GH0.tar.gz) = 1326005

Modified: head/security/afl++/files/Makefile.extra
==============================================================================
--- head/security/afl++/files/Makefile.extra	Fri Apr 10 05:41:06 2020	(r531291)
+++ head/security/afl++/files/Makefile.extra	Fri Apr 10 05:41:51 2020	(r531292)
@@ -5,7 +5,7 @@ install-strip: install
 	@-${STRIP_CMD} ${DESTDIR}${BIN_PATH}/afl-clang-fast
 	@-${STRIP_CMD} ${DESTDIR}${BIN_PATH}/afl-gcc-fast
 # XXX: strip(1) trips up when stripping all things in HELPER_PATH in one go?
-	@cd ${DESTDIR}${HELPER_PATH} && for f in afl-as *.so; do ${STRIP_CMD} $${f}; done
+	@cd ${DESTDIR}${HELPER_PATH} && for f in afl-as afl-ld *.so; do ${STRIP_CMD} $${f}; done
 
 libdislocator:
 	$(MAKE) -C libdislocator CFLAGS="-I../include ${CFLAGS}"
@@ -14,10 +14,10 @@ libtokencap:
 	$(MAKE) -C libtokencap 
 
 llvm_mode:
-	$(MAKE) -C llvm_mode
+	$(MAKE) -C llvm_mode AFL_REAL_LD="$(_AFL_REAL_LD)"
 
 test_llvm_mode:
-	$(MAKE) -C llvm_mode test_build
+	$(MAKE) -C llvm_mode AFL_REAL_LD="$(_AFL_REAL_LD)" test_build
 
 gcc_plugin:
 	$(MAKE) -C gcc_plugin CC="${GCC}" CXX="${GXX}"

Added: head/security/afl++/files/patch-test_test.sh
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/security/afl++/files/patch-test_test.sh	Fri Apr 10 05:41:51 2020	(r531292)
@@ -0,0 +1,70 @@
+Chicken and egg: Make tests runnable without afl++ already installed.
+
+[!] LTO llvm_mode failed
+clang-9: error: invalid linker name in argument '-fuse-ld=/usr/local/lib/afl/afl-ld'
+[!] llvm_mode LTO persistent mode feature compilation failed
+
+Setting AFL_CC is not necessary since all programs should be compiled
+with the right settings already.
+
+--- test/test.sh.orig	2020-04-09 08:23:37 UTC
++++ test/test.sh
+@@ -220,14 +220,6 @@ test "$SYS" = "i686" -o "$SYS" = "x86_64" -o "$SYS" = 
+ 
+ $ECHO "$BLUE[*] Testing: llvm_mode, afl-showmap, afl-fuzz, afl-cmin and afl-tmin"
+ test -e ../afl-clang-fast -a -e ../split-switches-pass.so && {
+-  # on FreeBSD need to set AFL_CC
+-  test `uname -s` = 'FreeBSD' && {
+-    if type clang >/dev/null; then
+-      export AFL_CC=`command -v clang`
+-    else
+-      export AFL_CC=`$LLVM_CONFIG --bindir`/clang
+-    fi
+-  }
+   ../afl-clang-fast -o test-instr.plain ../test-instr.c > /dev/null 2>&1
+   AFL_HARDEN=1 ../afl-clang-fast -o test-compcov.harden test-compcov.c > /dev/null 2>&1
+   test -e test-instr.plain && {
+@@ -398,16 +390,7 @@ test -e ../afl-clang-fast -a -e ../split-switches-pass
+ 
+ $ECHO "$BLUE[*] Testing: LTO llvm_mode"
+ test -e ../afl-clang-lto -a -e ../afl-llvm-lto-instrumentation.so && {
+-  # on FreeBSD need to set AFL_CC
+-  test `uname -s` = 'FreeBSD' && {
+-    if type clang >/dev/null; then
+-      export AFL_CC=`command -v clang`
+-    else
+-      export AFL_CC=`$LLVM_CONFIG --bindir`/clang
+-    fi
+-  }
+-
+-  ../afl-clang-lto -o test-instr.plain ../test-instr.c > /dev/null 2>&1
++  ../afl-clang-lto -fuse-ld="$(realpath ../afl-ld)" -o test-instr.plain ../test-instr.c > /dev/null 2>&1
+   test -e test-instr.plain && {
+     $ECHO "$GREEN[+] llvm_mode LTO compilation succeeded"
+     echo 0 | ../afl-showmap -m ${MEM_LIMIT} -o test-instr.plain.0 -r -- ./test-instr.plain > /dev/null 2>&1
+@@ -452,7 +435,7 @@ test -e ../afl-clang-lto -a -e ../afl-llvm-lto-instrum
+ #    CODE=1
+ #  }
+ #  rm -f test-compcov test.out whitelist.txt
+-  ../afl-clang-lto -o test-persistent ../examples/persistent_demo/persistent_demo.c > /dev/null 2>&1
++  ../afl-clang-lto -fuse-ld="$(realpath ../afl-ld)" -o test-persistent ../examples/persistent_demo/persistent_demo.c > /dev/null 2>&1
+   test -e test-persistent && {
+     echo foo | ../afl-showmap -o /dev/null -q -r ./test-persistent && {
+       $ECHO "$GREEN[+] llvm_mode LTO persistent mode feature works correctly"
+@@ -472,8 +455,6 @@ test -e ../afl-clang-lto -a -e ../afl-llvm-lto-instrum
+ 
+ $ECHO "$BLUE[*] Testing: gcc_plugin"
+ test -e ../afl-gcc-fast -a -e ../afl-gcc-rt.o && {
+-  SAVE_AFL_CC=${AFL_CC}
+-  export AFL_CC=`command -v gcc`
+   ../afl-gcc-fast -o test-instr.plain.gccpi ../test-instr.c > /dev/null 2>&1
+   AFL_HARDEN=1 ../afl-gcc-fast -o test-compcov.harden.gccpi test-compcov.c > /dev/null 2>&1
+   test -e test-instr.plain.gccpi && {
+@@ -575,7 +556,6 @@ test -e ../afl-gcc-fast -a -e ../afl-gcc-rt.o && {
+     CODE=1
+   }
+   rm -f test-persistent
+-  export AFL_CC=${SAVE_AFL_CC}
+ } || {
+   $ECHO "$YELLOW[-] gcc_plugin not compiled, cannot test"
+   INCOMPLETE=1

Modified: head/security/afl++/pkg-descr
==============================================================================
--- head/security/afl++/pkg-descr	Fri Apr 10 05:41:06 2020	(r531291)
+++ head/security/afl++/pkg-descr	Fri Apr 10 05:41:51 2020	(r531292)
@@ -7,4 +7,4 @@ fuzzed code.
 afl++ is a fork of afl that incorporates all community patches into
 a single source distribution.
 
-WWW: https://github.com/vanhauser-thc/AFLplusplus
+WWW: https://aflplus.plus/

Modified: head/security/afl++/pkg-plist
==============================================================================
--- head/security/afl++/pkg-plist	Fri Apr 10 05:41:06 2020	(r531291)
+++ head/security/afl++/pkg-plist	Fri Apr 10 05:41:51 2020	(r531292)
@@ -3,6 +3,8 @@ bin/afl-analyze
 %%X86%%bin/afl-clang++
 %%LLVM%%bin/afl-clang-fast
 %%LLVM%%bin/afl-clang-fast++
+%%LLVM%%bin/afl-clang-lto
+%%LLVM%%bin/afl-clang-lto++
 %%GCC%%bin/afl-g++-fast
 %%GCC%%bin/afl-gcc-fast
 bin/afl-cmin
@@ -19,12 +21,18 @@ bin/afl-whatsup
 %%X86%%lib/afl/afl-as
 %%GCC%%lib/afl/afl-gcc-pass.so
 %%GCC%%lib/afl/afl-gcc-rt.o
+%%LLVM%%lib/afl/afl-ld
+%%LLVM%%lib/afl/afl-llvm-lto-instrumentation.so
+%%LLVM%%lib/afl/afl-llvm-lto-whitelist.so
 %%LLVM%%lib/afl/afl-llvm-pass.so
 %%X86%%%%LLVM%%lib/afl/afl-llvm-rt-32.o
 %%LLVM%%lib/afl/afl-llvm-rt-64.o
 %%LLVM%%lib/afl/afl-llvm-rt.o
 %%X86%%lib/afl/as
+%%LLVM%%lib/afl/cmplog-instructions-pass.so
+%%LLVM%%lib/afl/cmplog-routines-pass.so
 %%LLVM%%lib/afl/compare-transform-pass.so
+%%LLVM%%lib/afl/ld
 %%LIBDISLOCATOR%%lib/afl/libdislocator.so
 lib/afl/libtokencap.so
 %%LLVM%%lib/afl/libLLVMInsTrim.so
@@ -34,6 +42,8 @@ man/man8/afl-analyze.8.gz
 man/man8/afl-as.8.gz
 %%LLVM%%man/man8/afl-clang-fast.8.gz
 %%LLVM%%man/man8/afl-clang-fast++.8.gz
+%%LLVM%%man/man8/afl-clang-lto.8.gz
+%%LLVM%%man/man8/afl-clang-lto++.8.gz
 man/man8/afl-cmin.8.gz
 man/man8/afl-cmin.bash.8.gz
 man/man8/afl-fuzz.8.gz
@@ -103,10 +113,20 @@ man/man8/afl-whatsup.8.gz
 %%PORTDOCS%%%%DOCSDIR%%/PATCHES.md
 %%PORTDOCS%%%%DOCSDIR%%/QuickStartGuide.md
 %%PORTDOCS%%%%DOCSDIR%%/README.MOpt.md
+%%PORTDOCS%%%%DOCSDIR%%/README.cmplog.md
+%%PORTDOCS%%%%DOCSDIR%%/README.ctx.md
+%%PORTDOCS%%%%DOCSDIR%%/README.instrim.md
+%%PORTDOCS%%%%DOCSDIR%%/README.laf-intel.md
+%%PORTDOCS%%%%DOCSDIR%%/README.llvm_mode.md
+%%PORTDOCS%%%%DOCSDIR%%/README.lto.md
 %%PORTDOCS%%%%DOCSDIR%%/README.md
+%%PORTDOCS%%%%DOCSDIR%%/README.neverzero.md
+%%PORTDOCS%%%%DOCSDIR%%/README.ngram.md
 %%PORTDOCS%%%%DOCSDIR%%/README.radamsa.md
+%%PORTDOCS%%%%DOCSDIR%%/README.snapshot.md
+%%PORTDOCS%%%%DOCSDIR%%/README.whitelist.md
 %%PORTDOCS%%%%DOCSDIR%%/binaryonly_fuzzing.md
-%%PORTDOCS%%%%DOCSDIR%%/custom_mutator.md
+%%PORTDOCS%%%%DOCSDIR%%/custom_mutators.md
 %%PORTDOCS%%%%DOCSDIR%%/env_variables.md
 %%GCC%%%%PORTDOCS%%%%DOCSDIR%%/gcc_plugin/README.md
 %%GCC%%%%PORTDOCS%%%%DOCSDIR%%/gcc_plugin/README.whitelist.md
@@ -116,22 +136,28 @@ man/man8/afl-whatsup.8.gz
 %%PORTDOCS%%%%DOCSDIR%%/libtokencap/README.md
 %%PORTDOCS%%%%DOCSDIR%%/life_pro_tips.md
 %%LLVM%%%%PORTDOCS%%%%DOCSDIR%%/llvm_mode/README.cmplog.md
+%%LLVM%%%%PORTDOCS%%%%DOCSDIR%%/llvm_mode/README.ctx.md
 %%LLVM%%%%PORTDOCS%%%%DOCSDIR%%/llvm_mode/README.instrim.md
 %%LLVM%%%%PORTDOCS%%%%DOCSDIR%%/llvm_mode/README.laf-intel.md
+%%LLVM%%%%PORTDOCS%%%%DOCSDIR%%/llvm_mode/README.lto.md
 %%LLVM%%%%PORTDOCS%%%%DOCSDIR%%/llvm_mode/README.md
 %%LLVM%%%%PORTDOCS%%%%DOCSDIR%%/llvm_mode/README.neverzero.md
+%%LLVM%%%%PORTDOCS%%%%DOCSDIR%%/llvm_mode/README.ngram.md
+%%LLVM%%%%PORTDOCS%%%%DOCSDIR%%/llvm_mode/README.snapshot.md
 %%LLVM%%%%PORTDOCS%%%%DOCSDIR%%/llvm_mode/README.whitelist.md
 %%PORTDOCS%%%%DOCSDIR%%/notes_for_asan.md
 %%PORTDOCS%%%%DOCSDIR%%/parallel_fuzzing.md
 %%PORTDOCS%%%%DOCSDIR%%/perf_tips.md
 %%PORTDOCS%%%%DOCSDIR%%/power_schedules.md
-%%PYTHON%%%%PORTDOCS%%%%DOCSDIR%%/python_mutators.md
 %%PORTDOCS%%%%DOCSDIR%%/sister_projects.md
 %%PORTDOCS%%%%DOCSDIR%%/status_screen.md
 %%PORTDOCS%%%%DOCSDIR%%/technical_details.md
-%%PYTHON%%%%PORTEXAMPLES%%%%EXAMPLESDIR%%/python_mutators/README
-%%PYTHON%%%%PORTEXAMPLES%%%%EXAMPLESDIR%%/python_mutators/XmlMutatorMin.py
-%%PYTHON%%%%PORTEXAMPLES%%%%EXAMPLESDIR%%/python_mutators/common.py
-%%PYTHON%%%%PORTEXAMPLES%%%%EXAMPLESDIR%%/python_mutators/example.py
-%%PYTHON%%%%PORTEXAMPLES%%%%EXAMPLESDIR%%/python_mutators/simple-chunk-replace.py
-%%PYTHON%%%%PORTEXAMPLES%%%%EXAMPLESDIR%%/python_mutators/wrapper_afl_min.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/custom_mutators/Makefile
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/custom_mutators/README.md
+%%PYTHON%%%%PORTEXAMPLES%%%%EXAMPLESDIR%%/custom_mutators/XmlMutatorMin.py
+%%PYTHON%%%%PORTEXAMPLES%%%%EXAMPLESDIR%%/custom_mutators/common.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/custom_mutators/custom_mutator_helpers.h
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/custom_mutators/example.c
+%%PYTHON%%%%PORTEXAMPLES%%%%EXAMPLESDIR%%/custom_mutators/example.py
+%%PYTHON%%%%PORTEXAMPLES%%%%EXAMPLESDIR%%/custom_mutators/simple-chunk-replace.py
+%%PYTHON%%%%PORTEXAMPLES%%%%EXAMPLESDIR%%/custom_mutators/wrapper_afl_min.py



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202004100541.03A5fpDf009834>