Fix XDVDFS bug (#88)

* Fix XDVDFS bug

* Move check and seek earlier
This commit is contained in:
Deterous
2026-04-20 11:13:01 +09:00
committed by GitHub
parent 2462305e0b
commit ab4bb4cca3

View File

@@ -146,6 +146,10 @@ namespace SabreTools.Serialization.Readers
var obj = new Dictionary<uint, DirectoryDescriptor>();
// Seek to current descriptor
data.SeekIfPossible(initialOffset + (((long)offset) * Constants.SectorSize), SeekOrigin.Begin);
// Parse current descriptor
var dd = ParseDirectoryDescriptor(data, initialOffset, offset, size);
if (dd is null)
return null;
@@ -161,13 +165,6 @@ namespace SabreTools.Serialization.Readers
if (obj.ContainsKey(dr.ExtentOffset))
continue;
// Ensure offset is valid
if ((((long)dr.ExtentOffset) * Constants.SectorSize) + size > data.Length)
return null;
// Seek to child descriptor
data.SeekIfPossible(initialOffset + (((long)dr.ExtentOffset) * Constants.SectorSize), SeekOrigin.Begin);
// Get all descriptors from child
var descriptors = ParseDirectoryDescriptors(data, initialOffset, dr.ExtentOffset, dr.ExtentSize);
if (descriptors is null)