summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-arch/lz4')
-rw-r--r--app-arch/lz4/files/lz4-1.9.3-negative-memmove.patch22
-rw-r--r--app-arch/lz4/lz4-1.9.3-r1.ebuild (renamed from app-arch/lz4/lz4-1.9.3.ebuild)4
2 files changed, 26 insertions, 0 deletions
diff --git a/app-arch/lz4/files/lz4-1.9.3-negative-memmove.patch b/app-arch/lz4/files/lz4-1.9.3-negative-memmove.patch
new file mode 100644
index 000000000000..053958dfe872
--- /dev/null
+++ b/app-arch/lz4/files/lz4-1.9.3-negative-memmove.patch
@@ -0,0 +1,22 @@
+From 8301a21773ef61656225e264f4f06ae14462bca7 Mon Sep 17 00:00:00 2001
+From: Jasper Lievisse Adriaanse <j@jasper.la>
+Date: Fri, 26 Feb 2021 15:21:20 +0100
+Subject: [PATCH] Fix potential memory corruption with negative memmove() size
+
+---
+ lib/lz4.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/lz4.c b/lib/lz4.c
+index 5f524d01d..c2f504ef3 100644
+--- a/lib/lz4.c
++++ b/lib/lz4.c
+@@ -1749,7 +1749,7 @@ LZ4_decompress_generic(
+ const size_t dictSize /* note : = 0 if noDict */
+ )
+ {
+- if (src == NULL) { return -1; }
++ if ((src == NULL) || (outputSize < 0)) { return -1; }
+
+ { const BYTE* ip = (const BYTE*) src;
+ const BYTE* const iend = ip + srcSize;
diff --git a/app-arch/lz4/lz4-1.9.3.ebuild b/app-arch/lz4/lz4-1.9.3-r1.ebuild
index 02eac78fb6dd..2282b90c9bcc 100644
--- a/app-arch/lz4/lz4-1.9.3.ebuild
+++ b/app-arch/lz4/lz4-1.9.3-r1.ebuild
@@ -18,6 +18,10 @@ IUSE="static-libs"
CMAKE_USE_DIR=${S}/build/cmake
+PATCHES=(
+ "${FILESDIR}"/${P}-negative-memmove.patch
+)
+
multilib_src_configure() {
local mycmakeargs=(
-DBUILD_STATIC_LIBS=$(usex static-libs)