summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Deutschmann <whissi@gentoo.org>2019-10-24 15:25:44 +0200
committerThomas Deutschmann <whissi@gentoo.org>2019-10-24 15:25:44 +0200
commit2168b88b5e7c52936bb3c0000aaa54212d49a36a (patch)
tree15ad4520d864db6fb5ce0db540260386cab5104e /dev-libs/oniguruma
parentdev-lang/php: bump to v7.2.24 (diff)
downloadgentoo-2168b88b5e7c52936bb3c0000aaa54212d49a36a.tar.gz
gentoo-2168b88b5e7c52936bb3c0000aaa54212d49a36a.tar.bz2
gentoo-2168b88b5e7c52936bb3c0000aaa54212d49a36a.zip
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 <whissi@gentoo.org>
Diffstat (limited to 'dev-libs/oniguruma')
-rw-r--r--dev-libs/oniguruma/files/oniguruma-6.9.3-fix-heap-buffer-overflow-php78633.patch25
-rw-r--r--dev-libs/oniguruma/oniguruma-6.9.3-r2.ebuild37
2 files changed, 62 insertions, 0 deletions
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
+}