ISO9660 xattr length is not included in directory record size.

This commit is contained in:
2019-07-31 22:04:47 +01:00
parent 06662b7995
commit d6da209fdc

View File

@@ -89,16 +89,15 @@ namespace DiscImageChef.Filesystems.ISO9660
if(entry.Extents is null) return Errno.InvalidArgument; if(entry.Extents is null) return Errno.InvalidArgument;
if(entry.Size - entry.XattrLength == 0) if(entry.Size == 0)
{ {
buf = new byte[0]; buf = new byte[0];
return Errno.NoError; return Errno.NoError;
} }
if(offset >= (long)entry.Size - entry.XattrLength) return Errno.InvalidArgument; if(offset >= (long)entry.Size) return Errno.InvalidArgument;
if(size + offset + entry.XattrLength >= (long)entry.Size) if(size + offset >= (long)entry.Size) size = (long)entry.Size - offset;
size = (long)entry.Size - offset - entry.XattrLength;
offset += entry.XattrLength; offset += entry.XattrLength;
@@ -136,7 +135,7 @@ namespace DiscImageChef.Filesystems.ISO9660
Attributes = new FileAttributes(), Attributes = new FileAttributes(),
Blocks = (long)(entry.Size / 2048), // TODO: XA Blocks = (long)(entry.Size / 2048), // TODO: XA
BlockSize = 2048, BlockSize = 2048,
Length = (long)(entry.Size - entry.XattrLength), Length = (long)entry.Size,
Inode = entry.Extents?[0].extent ?? 0, Inode = entry.Extents?[0].extent ?? 0,
Links = 1, Links = 1,
LastWriteTimeUtc = entry.Timestamp LastWriteTimeUtc = entry.Timestamp