From 2168b88b5e7c52936bb3c0000aaa54212d49a36a Mon Sep 17 00:00:00 2001 From: Thomas Deutschmann Date: Thu, 24 Oct 2019 15:25:44 +0200 Subject: dev-libs/oniguruma: fix heap buffer overflow in match_at() Link: https://bugs.php.net/bug.php?id=78633 Package-Manager: Portage-2.3.78, Repoman-2.3.17 Signed-off-by: Thomas Deutschmann --- ...a-6.9.3-fix-heap-buffer-overflow-php78633.patch | 25 +++++++++++++++ dev-libs/oniguruma/oniguruma-6.9.3-r2.ebuild | 37 ++++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 dev-libs/oniguruma/files/oniguruma-6.9.3-fix-heap-buffer-overflow-php78633.patch create mode 100644 dev-libs/oniguruma/oniguruma-6.9.3-r2.ebuild (limited to 'dev-libs/oniguruma') diff --git a/dev-libs/oniguruma/files/oniguruma-6.9.3-fix-heap-buffer-overflow-php78633.patch b/dev-libs/oniguruma/files/oniguruma-6.9.3-fix-heap-buffer-overflow-php78633.patch new file mode 100644 index 000000000000..e946a57d648f --- /dev/null +++ b/dev-libs/oniguruma/files/oniguruma-6.9.3-fix-heap-buffer-overflow-php78633.patch @@ -0,0 +1,25 @@ +https://bugs.php.net/bug.php?id=78633 +https://github.com/kkos/oniguruma/commit/15c4228aa2ffa02140a99912dd3177df0b1841c6 + +--- a/src/regcomp.c ++++ b/src/regcomp.c +@@ -734,8 +734,8 @@ add_compile_string(UChar* s, int mb_len, int str_len, + COP(reg)->exact_n.s = p; + } + else { ++ xmemset(COP(reg)->exact.s, 0, sizeof(COP(reg)->exact.s)); + xmemcpy(COP(reg)->exact.s, s, (size_t )byte_len); +- COP(reg)->exact.s[byte_len] = '\0'; + } + + return 0; +--- a/src/regexec.c ++++ b/src/regexec.c +@@ -2889,6 +2889,7 @@ match_at(regex_t* reg, const UChar* str, const UChar* end, + DATA_ENSURE(0); + q = lowbuf; + while (len-- > 0) { ++ if (ps >= endp) goto fail; + if (*ps != *q) goto fail; + ps++; q++; + } diff --git a/dev-libs/oniguruma/oniguruma-6.9.3-r2.ebuild b/dev-libs/oniguruma/oniguruma-6.9.3-r2.ebuild new file mode 100644 index 000000000000..9dde078fc58e --- /dev/null +++ b/dev-libs/oniguruma/oniguruma-6.9.3-r2.ebuild @@ -0,0 +1,37 @@ +# Copyright 2003-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" + +inherit multilib-minimal + +MY_P="onig-${PV}" + +DESCRIPTION="Regular expression library for different character encodings" +HOMEPAGE="https://github.com/kkos/oniguruma" +SRC_URI="https://github.com/kkos/${PN}/releases/download/v${PV}/${MY_P}.tar.gz" + +LICENSE="BSD-2" +SLOT="0/5" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x86-solaris" +IUSE="crnl-as-line-terminator static-libs" + +PATCHES=( + "${FILESDIR}"/${PN}-6.9.3-fix-heap-buffer-overflow-php78559.patch + "${FILESDIR}"/${PN}-6.9.3-fix-heap-buffer-overflow-php78633.patch +) + +S="${WORKDIR}/${MY_P}" + +DOCS=(AUTHORS HISTORY README{,_japanese} doc/{API,CALLOUTS.API,CALLOUTS.BUILTIN,FAQ,RE}{,.ja} doc/{SYNTAX.md,UNICODE_PROPERTIES}) + +multilib_src_configure() { + ECONF_SOURCE="${S}" econf \ + $(use_enable crnl-as-line-terminator) \ + $(use_enable static-libs static) +} + +multilib_src_install_all() { + einstalldocs + find "${D}" -name "*.la" -type f -delete || die +} -- cgit v1.2.3-65-gdbad