commit:     46ee4b72fa83b9652bf4ac5a92914f7a558b4cab
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Fri Nov 11 23:02:48 2016 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Fri Nov 11 23:03:20 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=46ee4b72

app-forensics/honggfuzz: unbreak --linux_perf_bts_block flag

Workaround --linux_perf_bts_block flag breakage.

Mateusz reports that running honggfuzz fails as:
    [2016-11-11T21:54:27+0000][W][1190] arch_perfOpen():223 mmap(mmapAuxBuf) 
failed,
    try increasing the kernel.perf_event_mlock_kb sysctl (up to even 
300000000): Cannot allocate memory

It seems aux data also needs WRITE permissions.

Reported-by: Mateusz Lenik

Package-Manager: portage-2.3.2

 .../honggfuzz/files/honggfuzz-0.8-bts-perms.patch  | 19 ++++++++++
 app-forensics/honggfuzz/honggfuzz-0.8-r1.ebuild    | 42 ++++++++++++++++++++++
 2 files changed, 61 insertions(+)

diff --git a/app-forensics/honggfuzz/files/honggfuzz-0.8-bts-perms.patch 
b/app-forensics/honggfuzz/files/honggfuzz-0.8-bts-perms.patch
new file mode 100644
index 00000000..e8ac491
--- /dev/null
+++ b/app-forensics/honggfuzz/files/honggfuzz-0.8-bts-perms.patch
@@ -0,0 +1,19 @@
+Workaround --linux_perf_bts_block flag breakage.
+
+Mateusz reports that running honggfuzz fails as:
+    [2016-11-11T21:54:27+0000][W][1190] arch_perfOpen():223 mmap(mmapAuxBuf) 
failed,
+    try increasing the kernel.perf_event_mlock_kb sysctl (up to even 
300000000): Cannot allocate memory
+
+It seems aux data also needs WRITE permissions.
+
+Reported-by: Mateusz Lenik
+diff --git a/linux/perf.c b/linux/perf.c
+index d8ede5f..2f71b3d 100644
+--- a/linux/perf.c
++++ b/linux/perf.c
+@@ -217,3 +217,4 @@ static bool arch_perfOpen(honggfuzz_t * hfuzz, fuzzer_t * 
fuzzer UNUSED, pid_t p
+     fuzzer->linux.perfMmapAux =
+-        mmap(NULL, pem->aux_size, PROT_READ, MAP_SHARED, *perfFd, 
pem->aux_offset);
++        mmap(NULL, pem->aux_size, PROT_READ | PROT_WRITE, MAP_SHARED, 
*perfFd, pem->aux_offset);
++
+     if (fuzzer->linux.perfMmapAux == MAP_FAILED) {

diff --git a/app-forensics/honggfuzz/honggfuzz-0.8-r1.ebuild 
b/app-forensics/honggfuzz/honggfuzz-0.8-r1.ebuild
new file mode 100644
index 00000000..8c9774c
--- /dev/null
+++ b/app-forensics/honggfuzz/honggfuzz-0.8-r1.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+inherit toolchain-funcs
+
+DESCRIPTION="A general purpose fuzzer with feedback support"
+HOMEPAGE="http://google.github.io/honggfuzz/";
+SRC_URI="https://github.com/google/honggfuzz/archive/${PV}.tar.gz -> 
${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+RDEPEND="
+       sys-libs/binutils-libs:=
+       sys-libs/libunwind
+"
+
+DEPEND="${RDEPEND}"
+
+DOCS=(
+       CHANGELOG
+       COPYING
+       CONTRIBUTING
+       README.md
+)
+
+PATCHES=("${FILESDIR}"/${P}-bts-perms.patch)
+
+src_compile() {
+       CC="$(tc-getCC)" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" emake
+}
+
+src_install() {
+       dobin ${PN}
+
+       einstalldocs
+}

Reply via email to