18 lines
703 B
Diff
18 lines
703 B
Diff
Index: CPP/7zip/Archive/Udf/UdfIn.cpp
|
|
===================================================================
|
|
--- CPP/7zip/Archive/Udf/UdfIn.cpp.orig
|
|
+++ 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;
|