summaryrefslogtreecommitdiff
path: root/libre/p7zip/CVE-2017-17969.patch
diff options
context:
space:
mode:
Diffstat (limited to 'libre/p7zip/CVE-2017-17969.patch')
-rw-r--r--libre/p7zip/CVE-2017-17969.patch26
1 files changed, 26 insertions, 0 deletions
diff --git a/libre/p7zip/CVE-2017-17969.patch b/libre/p7zip/CVE-2017-17969.patch
new file mode 100644
index 000000000..ebc0ac93e
--- /dev/null
+++ b/libre/p7zip/CVE-2017-17969.patch
@@ -0,0 +1,26 @@
+From 79bca880ce7bcf07216c45f93afea545e0344418 Mon Sep 17 00:00:00 2001
+From: aone <aone@keka.io>
+Date: Mon, 5 Feb 2018 13:01:09 +0100
+Subject: [PATCH] Security fix CVE-2017-17969
+
+---
+ CPP/7zip/Compress/ShrinkDecoder.cpp | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/CPP/7zip/Compress/ShrinkDecoder.cpp b/CPP/7zip/Compress/ShrinkDecoder.cpp
+index 80b7e67..5bb0559 100644
+--- a/CPP/7zip/Compress/ShrinkDecoder.cpp
++++ b/CPP/7zip/Compress/ShrinkDecoder.cpp
+@@ -121,7 +121,12 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
+ {
+ _stack[i++] = _suffixes[cur];
+ cur = _parents[cur];
++ if (cur >= kNumItems || i >= kNumItems)
++ break;
+ }
++
++ if (cur >= kNumItems || i >= kNumItems)
++ break;
+
+ _stack[i++] = (Byte)cur;
+ lastChar2 = (Byte)cur;