Index: p7zip_15.14.1/CPP/7zip/Archive/Udf/UdfIn.cpp =================================================================== --- p7zip_15.14.1.orig/CPP/7zip/Archive/Udf/UdfIn.cpp +++ p7zip_15.14.1/CPP/7zip/Archive/Udf/UdfIn.cpp @@ -389,7 +389,11 @@ HRESULT CInArchive::ReadFileItem(int vol return S_FALSE; CFile &file = Files.Back(); const CLogVol &vol = LogVols[volIndex]; - CPartition &partition = Partitions[vol.PartitionMaps[lad.Location.PartitionRef].PartitionIndex]; + unsigned partitionRef = lad.Location.PartitionRef; + + if (partitionRef >= vol.PartitionMaps.Size()) + return S_FALSE; + CPartition &partition = Partitions[vol.PartitionMaps[partitionRef].PartitionIndex]; UInt32 key = lad.Location.Pos; UInt32 value;