p7zip: Avoid crashing while decoding certain malformed input

https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-9296
https://sourceforge.net/p/p7zip/bugs/185/#32aa
https://sourceforge.net/p/p7zip/discussion/383043/thread/648d34db
https://trac.macports.org/ticket/52982

Check whether folders.PackPositions is nonnull before accessing it. Fix
developed by Igor Pavlov.

Upstream-Status: Backport [7-Zip 16.03 for Windows]
CVE: CVE-2016-9296
Signed-off-by: Lawrence Velázquez <larryv@macports.org>

Index: CPP/7zip/Archive/7z/7zIn.cpp
===================================================================
--- CPP/7zip/Archive/7z/7zIn.cpp.orig
+++ CPP/7zip/Archive/7z/7zIn.cpp
@@ -1097,7 +1097,8 @@ HRESULT CInArchive::ReadAndDecodePackedS
       if (CrcCalc(data, unpackSize) != folders.FolderCRCs.Vals[i])
         ThrowIncorrect();
   }
-  HeadersSize += folders.PackPositions[folders.NumPackStreams];
+  if (folders.PackPositions)
+    HeadersSize += folders.PackPositions[folders.NumPackStreams];
   return S_OK;
 }
 
