commit: 24605313fed0a4e2ef4bdd1205e25af2d5624c8a
Author: Michael Weber <xmw <AT> gentoo <DOT> org>
AuthorDate: Thu Feb 23 12:28:14 2017 +0000
Commit: Michael Weber <xmw <AT> gentoo <DOT> org>
CommitDate: Thu Feb 23 12:28:25 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=24605313
dev-libs/libutf8proc: Revbump with security patch (bug 610684).
Package-Manager: Portage-2.3.3, Repoman-2.3.1
.../files/libutf8proc-1.3.1_p2-overrun.patch | 33 ++++++++++++++++++++++
....1_p2.ebuild => libutf8proc-1.3.1_p2-r1.ebuild} | 4 ++-
2 files changed, 36 insertions(+), 1 deletion(-)
diff --git a/dev-libs/libutf8proc/files/libutf8proc-1.3.1_p2-overrun.patch
b/dev-libs/libutf8proc/files/libutf8proc-1.3.1_p2-overrun.patch
new file mode 100644
index 0000000000..8ce7f4cfbe
--- /dev/null
+++ b/dev-libs/libutf8proc/files/libutf8proc-1.3.1_p2-overrun.patch
@@ -0,0 +1,33 @@
+--- libutf8proc-1.3.1-2/test/iterate.c
++++ libutf8proc-1.3.1-2/test/iterate.c
+@@ -13,11 +13,17 @@ static void testbytes(unsigned char *buf, int len,
utf8proc_ssize_t retval, int
+ utf8proc_int32_t out[16];
+ utf8proc_ssize_t ret;
+
++ /* Make a copy to ensure that memory is left uninitialized after "len"
++ * bytes. This way, Valgrind can detect overreads.
++ */
++ unsigned char tmp[16];
++ memcpy(tmp, buf, len);
++
+ tests++;
+- if ((ret = utf8proc_iterate(buf, len, out)) != retval) {
++ if ((ret = utf8proc_iterate(tmp, len, out)) != retval) {
+ fprintf(stderr, "Failed (%d):", line);
+ for (int i = 0; i < len ; i++) {
+- fprintf(stderr, " 0x%02x", buf[i]);
++ fprintf(stderr, " 0x%02x", tmp[i]);
+ }
+ fprintf(stderr, " -> %zd\n", ret);
+ error++;
+--- libutf8proc-1.3.1-2/src/utf8proc.c
++++ libutf8proc-1.3.1-2/src/utf8proc.c
+@@ -128,7 +128,7 @@ UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_iterate(
+ if ((uc - 0xc2) > (0xf4-0xc2)) return UTF8PROC_ERROR_INVALIDUTF8;
+ if (uc < 0xe0) { // 2-byte sequence
+ // Must have valid continuation character
+- if (!utf_cont(*str)) return UTF8PROC_ERROR_INVALIDUTF8;
++ if (str >= end || !utf_cont(*str)) return UTF8PROC_ERROR_INVALIDUTF8;
+ *dst = ((uc & 0x1f)<<6) | (*str & 0x3f);
+ return 2;
+ }
diff --git a/dev-libs/libutf8proc/libutf8proc-1.3.1_p2.ebuild
b/dev-libs/libutf8proc/libutf8proc-1.3.1_p2-r1.ebuild
similarity index 82%
rename from dev-libs/libutf8proc/libutf8proc-1.3.1_p2.ebuild
rename to dev-libs/libutf8proc/libutf8proc-1.3.1_p2-r1.ebuild
index 9e3662d0f1..f2d7bd1398 100644
--- a/dev-libs/libutf8proc/libutf8proc-1.3.1_p2.ebuild
+++ b/dev-libs/libutf8proc/libutf8proc-1.3.1_p2-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2016 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
@@ -20,4 +20,6 @@ IUSE=""
RDEPEND=""
DEPEND="${RDEPEND}"
+PATCHES=( "${FILESDIR}"/${PN}-1.3.1_p2-overrun.patch )
+
S="${WORKDIR}/${P/_p/-}"