summaryrefslogtreecommitdiff
path: root/dev-libs/capstone
diff options
context:
space:
mode:
Diffstat (limited to 'dev-libs/capstone')
-rw-r--r--dev-libs/capstone/Manifest7
-rw-r--r--dev-libs/capstone/capstone-3.0.5_rc2-r1.ebuild82
-rw-r--r--dev-libs/capstone/capstone-3.0.5_rc2.ebuild44
-rw-r--r--dev-libs/capstone/files/capstone-3.0.5_rc2-CVE-2017-6952.patch41
-rw-r--r--dev-libs/capstone/files/capstone-3.0.5_rc2-FLAGS.patch16
-rw-r--r--dev-libs/capstone/metadata.xml12
6 files changed, 202 insertions, 0 deletions
diff --git a/dev-libs/capstone/Manifest b/dev-libs/capstone/Manifest
new file mode 100644
index 000000000000..0fdafef40c56
--- /dev/null
+++ b/dev-libs/capstone/Manifest
@@ -0,0 +1,7 @@
+AUX capstone-3.0.5_rc2-CVE-2017-6952.patch 1565 SHA256 857f8f769e276d67c06a3e2f530a8607dd797d9c09b80948908ea1ded468db2c SHA512 1f4f24bdede4439811b077502b227474827a455921eb183455c31e7de142d3f3f7e9f19869aac87b92a768be34a7e5ad040f0d68e8125b590d14dfec7af5b407 WHIRLPOOL bad51c09236966ec888b046a8069295d260218be1f8314136f8f727cc3c771d6a95933c92f52ad88fdaa45d1590e31e33399754abda05bbd53491b24e781ddce
+AUX capstone-3.0.5_rc2-FLAGS.patch 398 SHA256 13125a28e199a0fff035ff1a89d2439ade32fe313293f31fbf9a7203b1c12539 SHA512 95fb22a680e20f5b19936bd65ceadb9e29a8ed1f3de831379cfc0e650bfd4af7214b97efa97ed894a10d83541e0e49c60ff1a0cb501cd63a9af8f40460909975 WHIRLPOOL 6299beba3f0a0115365ed8f100519354ea35579f295691251a88568709135af7699e65df6336dd94c770b644f974aabb0d2fbc653b8dbeb361167a1798fca9dd
+DIST capstone-3.0.5_rc2.tar.gz 2829338 SHA256 587c092454ad59137686529f3c008c265cc6d427a85d5d2e8f6a902b72d215b3 SHA512 31bafdb0b3183d0c054a4244cc135db9a3c3dc5cb2e2af706bfede0d53cca8cba81d74b74ef9a4adbfd6c79cc408864dd80b8203791e17bd6c98bb69ea4f6894 WHIRLPOOL 11a84f178cae68507d2686a81ca6cbc84b6402cb02e7278c03ec598887a0aa02d28a9ecbf388e09c8c3ae8d8ecf323dd4eaa211f79969089c4c7d6fbbe022349
+EBUILD capstone-3.0.5_rc2-r1.ebuild 1383 SHA256 6b60a364b165fc9d8a2836b1958e185312b0d48580e9e05f1cc3871682e2ed90 SHA512 e0e61ad4af2fe6fa2b91e759dc9a9937fa75af99ebf7bc60e41750412b9e49c37677eb057b6bd7091abb00fb3b9ef06f3d2c172605b615226a68c4d050e4c48d WHIRLPOOL f53abcd4775836277756bb3166318c3f3891c026143d32ac7268fdd8ebe266ee993ae945d8f27aa26ec8ee3f795c71b3a953a7e5791116187c940c5ca2331407
+EBUILD capstone-3.0.5_rc2.ebuild 849 SHA256 1adc0231921a6bdce8271a15ca664bdc5f60a43e23beef7eeaee7ee6b67cf7ce SHA512 7896e5759c146a82b47239bf0fede1c67f49ec9970d3ca82ff1db6d4c53c7c8f3a3a657491ed12a8ca5de585ffcdaf032f3c3d1b9db6db0d4c75e613ef4dfc70 WHIRLPOOL edffd12e6c8d4a180077b2866e0ae2f07c95e95eeb896908f2df09afe44192ec619e3da8f0aebd4e167ee64168f7a01a3ba04aea76626b033d016e222d504d66
+MISC ChangeLog 1153 SHA256 cac5408060ed6c38b37e90e102acb658708e9182f44a5206c79a095dd68bf370 SHA512 b241ba998e241446be58968bb157b9bc99ff34241e7554133415c02fd6439c3044c8b93ab00ba98d485818ce4f5c0d6ff050992e581b0ca8d07a4c6502f45a01 WHIRLPOOL 6591c4bb70d7e7ae2b4ed215dde6d833e407c4d3b36d2df4590f7dcf1e596e2de8a3be5f4edcfd3bfc1503a35ec88d1ed515af3bd136befd24440c107b050c75
+MISC metadata.xml 332 SHA256 ac09aabe02ed08000f9071abb8a88ecc8d1b6160b574f6c65ff3aae4bb76dc4b SHA512 a4952a89d043c4c8aec5a7a307d37d895880d49b381e5b881ffecf74b61c9c22cd854a68a1d1de3926431cdfad4f8ba70812be36bb7cac2df5dee8efe96dc269 WHIRLPOOL 4dbc6b0ab82a7251be3b0e123238ab45684a041d47abb0899bcd0cbc2295c54a792e64dee5d8868826046a2eb02a906981a36804f7283cace56d9cb7fd9e3492
diff --git a/dev-libs/capstone/capstone-3.0.5_rc2-r1.ebuild b/dev-libs/capstone/capstone-3.0.5_rc2-r1.ebuild
new file mode 100644
index 000000000000..02b42dcd4eae
--- /dev/null
+++ b/dev-libs/capstone/capstone-3.0.5_rc2-r1.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+DISTUTILS_OPTIONAL=1
+PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} )
+
+inherit distutils-r1 toolchain-funcs
+
+DESCRIPTION="disassembly/disassembler framework + bindings"
+HOMEPAGE="http://www.capstone-engine.org/"
+SRC_URI="https://github.com/aquynh/${PN}/archive/${PV/_rc/-rc}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0/3" # libcapstone.so.3
+KEYWORDS="~amd64 ~arm ~x86"
+
+IUSE="python"
+RDEPEND="python? ( ${PYTHON_DEPS} )"
+DEPEND="${RDEPEND}"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-CVE-2017-6952.patch
+ "${FILESDIR}"/${P}-FLAGS.patch
+)
+
+S=${WORKDIR}/${P/_rc/-rc}
+
+wrap_python() {
+ if use python; then
+ pushd bindings/python >/dev/null || die
+ distutils-r1_${1} "$@"
+ popd >/dev/null
+ fi
+}
+
+src_prepare() {
+ default
+
+ wrap_python ${FUNCNAME}
+}
+
+src_configure() {
+ {
+ cat <<-EOF
+ # Gentoo overrides:
+ # verbose build
+ V = 1
+ # toolchain
+ AR = $(tc-getAR)
+ CC = $(tc-getCC)
+ RANLIB = $(tc-getRANLIB)
+ # toolchain flags
+ CFLAGS = ${CFLAGS}
+ LDFLAGS = ${LDFLAGS}
+ # libs
+ LIBDIRARCH = $(get_libdir)
+ EOF
+ } >> config.mk || die
+
+ wrap_python ${FUNCNAME}
+}
+
+src_compile() {
+ default
+
+ wrap_python ${FUNCNAME}
+}
+
+src_test() {
+ default
+
+ wrap_python ${FUNCNAME}
+}
+
+src_install() {
+ default
+
+ wrap_python ${FUNCNAME}
+}
diff --git a/dev-libs/capstone/capstone-3.0.5_rc2.ebuild b/dev-libs/capstone/capstone-3.0.5_rc2.ebuild
new file mode 100644
index 000000000000..80fb03207d64
--- /dev/null
+++ b/dev-libs/capstone/capstone-3.0.5_rc2.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit toolchain-funcs
+
+DESCRIPTION="disassembly/disassembler framework + bindings"
+HOMEPAGE="http://www.capstone-engine.org/"
+SRC_URI="https://github.com/aquynh/${PN}/archive/${PV/_rc/-rc}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0/3" # libcapstone.so.3
+KEYWORDS="~amd64 ~arm ~x86"
+
+RDEPEND=""
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-CVE-2017-6952.patch
+ "${FILESDIR}"/${P}-FLAGS.patch
+)
+
+S=${WORKDIR}/${P/_rc/-rc}
+
+src_configure() {
+ {
+ cat <<-EOF
+ # Gentoo overrides:
+ # verbose build
+ V = 1
+ # toolchain
+ AR = $(tc-getAR)
+ CC = $(tc-getCC)
+ RANLIB = $(tc-getRANLIB)
+ # toolchain flags
+ CFLAGS = ${CFLAGS}
+ LDFLAGS = ${LDFLAGS}
+ # libs
+ LIBDIRARCH = $(get_libdir)
+ EOF
+ } >> config.mk || die
+
+}
diff --git a/dev-libs/capstone/files/capstone-3.0.5_rc2-CVE-2017-6952.patch b/dev-libs/capstone/files/capstone-3.0.5_rc2-CVE-2017-6952.patch
new file mode 100644
index 000000000000..ba16126f7411
--- /dev/null
+++ b/dev-libs/capstone/files/capstone-3.0.5_rc2-CVE-2017-6952.patch
@@ -0,0 +1,41 @@
+commit 6fe86eef621b9849f51a5e1e5d73258a93440403
+Author: Quang Nguyễn <quangnh89@users.noreply.github.com>
+Date: Mon Mar 13 22:34:48 2017 +0700
+
+ provide a validity check to prevent against Integer overflow conditions (#870)
+
+ * provide a validity check to prevent against Integer overflow conditions
+
+ * fix some style issues.
+
+diff --git a/windows/winkernel_mm.c b/windows/winkernel_mm.c
+index c127da3a..ecdc1ca2 100644
+--- a/windows/winkernel_mm.c
++++ b/windows/winkernel_mm.c
+@@ -3,6 +3,7 @@
+
+ #include "winkernel_mm.h"
+ #include <ntddk.h>
++#include <Ntintsafe.h>
+
+ // A pool tag for memory allocation
+ static const ULONG CS_WINKERNEL_POOL_TAG = 'kwsC';
+@@ -33,8 +34,16 @@ void * CAPSTONE_API cs_winkernel_malloc(size_t size)
+
+ // FP; a use of NonPagedPool is required for Windows 7 support
+ #pragma prefast(suppress : 30030) // Allocating executable POOL_TYPE memory
+- CS_WINKERNEL_MEMBLOCK *block = (CS_WINKERNEL_MEMBLOCK *)ExAllocatePoolWithTag(
+- NonPagedPool, size + sizeof(CS_WINKERNEL_MEMBLOCK), CS_WINKERNEL_POOL_TAG);
++ size_t number_of_bytes = 0;
++ CS_WINKERNEL_MEMBLOCK *block = NULL;
++ // A specially crafted size value can trigger the overflow.
++ // If the sum in a value that overflows or underflows the capacity of the type,
++ // the function returns NULL.
++ if (!NT_SUCCESS(RtlSizeTAdd(size, sizeof(CS_WINKERNEL_MEMBLOCK), &number_of_bytes))) {
++ return NULL;
++ }
++ block = (CS_WINKERNEL_MEMBLOCK *)ExAllocatePoolWithTag(
++ NonPagedPool, number_of_bytes, CS_WINKERNEL_POOL_TAG);
+ if (!block) {
+ return NULL;
+ }
diff --git a/dev-libs/capstone/files/capstone-3.0.5_rc2-FLAGS.patch b/dev-libs/capstone/files/capstone-3.0.5_rc2-FLAGS.patch
new file mode 100644
index 000000000000..4be2ed4ba0e6
--- /dev/null
+++ b/dev-libs/capstone/files/capstone-3.0.5_rc2-FLAGS.patch
@@ -0,0 +1,16 @@
+Add support for user overridden CFLAGS and LDFLAGS
+diff --git a/cstool/Makefile b/cstool/Makefile
+index 450ac1b..3cf2a81 100644
+--- a/cstool/Makefile
++++ b/cstool/Makefile
+@@ -3,2 +3,3 @@
+ include ../functions.mk
++include ../config.mk
+
+@@ -8,4 +9,4 @@ LIBNAME = capstone
+
+-CFLAGS = -I../include
+-LDFLAGS = -O3 -Wall -L.. -l$(LIBNAME)
++CFLAGS += -I../include
++LDFLAGS += -Wall -L.. -l$(LIBNAME)
+
diff --git a/dev-libs/capstone/metadata.xml b/dev-libs/capstone/metadata.xml
new file mode 100644
index 000000000000..506ec45bd2c7
--- /dev/null
+++ b/dev-libs/capstone/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+
+ <maintainer type="person">
+ <email>slyfox@gentoo.org</email>
+ <name>Sergei Trofimovich</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">aquynh/capstone</remote-id>
+ </upstream>
+</pkgmetadata>