diff -Nur p7zip/CPP/7zip/Compress/ShrinkDecoder.cpp CVE-2017-17969_mod/CPP/7zip/Compress/ShrinkDecoder.cpp --- p7zip/CPP/7zip/Compress/ShrinkDecoder.cpp 2016-05-19 01:31:02.000000000 +0800 +++ CVE-2017-17969_mod/CPP/7zip/Compress/ShrinkDecoder.cpp 2019-03-06 22:04:10.675224841 +0800 @@ -121,8 +121,13 @@ { _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;