$NetBSD: patch-CVE-2017-17969,v 1.1 2019/07/18 10:03:26 nia Exp $

Fix CVE-2017-17969 - heap-based buffer overflow

From https://sourceforge.net/p/p7zip/bugs/204/

--- CPP/7zip/Compress/ShrinkDecoder.cpp.orig	2016-05-18 17:31:02.000000000 +0000
+++ CPP/7zip/Compress/ShrinkDecoder.cpp
@@ -121,8 +121,13 @@ HRESULT CDecoder::CodeReal(ISequentialIn
     {
       _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;
 
