diff --git a/Aaru.Filesystems/ISO9660/Dir.cs b/Aaru.Filesystems/ISO9660/Dir.cs index 69b360ccf..a4501b063 100644 --- a/Aaru.Filesystems/ISO9660/Dir.cs +++ b/Aaru.Filesystems/ISO9660/Dir.cs @@ -412,7 +412,8 @@ namespace Aaru.Filesystems.ISO9660 entries[entry.Filename].XattrLength = entry.XattrLength; } - entries[entry.Filename].Extents.Add(entry.Extents[0]); + if(entry.Extents?.Count > 0) + entries[entry.Filename].Extents.Add(entry.Extents[0]); } else entries[entry.Filename] = entry; diff --git a/Aaru.Filesystems/ISO9660/File.cs b/Aaru.Filesystems/ISO9660/File.cs index 3007d2237..4d2321421 100644 --- a/Aaru.Filesystems/ISO9660/File.cs +++ b/Aaru.Filesystems/ISO9660/File.cs @@ -175,12 +175,14 @@ namespace Aaru.Filesystems.ISO9660 stat = new FileEntryInfo { - Attributes = new FileAttributes(), Blocks = (long)(entry.Size / 2048), // TODO: XA - BlockSize = 2048, Length = (long)entry.Size, - Inode = entry.Extents?[0].extent ?? 0, Links = 1, + Attributes = new FileAttributes(), Blocks = (long)(entry.Size / 2048), // TODO: XA + BlockSize = 2048, Length = (long)entry.Size, Links = 1, LastWriteTimeUtc = entry.Timestamp }; + if(entry.Extents?.Count > 0) + stat.Inode = entry.Extents[0].extent; + if(entry.Size % 2048 > 0) stat.Blocks++;