Do not try to read EAs from FAT16 directory entry field when it is a FAT32 volume. Fixes #361

This commit is contained in:
2020-06-14 04:32:47 +01:00
parent fdd2418f3a
commit 09b2ffcbfb
3 changed files with 8 additions and 8 deletions

View File

@@ -1375,7 +1375,6 @@
<e p="obj" t="ExcludeRecursive">
<e p="Debug" t="Include">
<e p="netcoreapp3.0" t="Include">
<e p="Aaru.Gui.AssemblyInfo.cs" t="Include" />
<e p="Avalonia" t="Include">
<e p="resources" t="Include" />
</e>

View File

@@ -273,8 +273,9 @@ namespace Aaru.Filesystems.FAT
}
// Check OS/2 .LONGNAME
if(eaCache != null &&
(@namespace == Namespace.Os2 || @namespace == Namespace.Ecs))
if(eaCache != null &&
(@namespace == Namespace.Os2 || @namespace == Namespace.Ecs) &&
!fat32)
{
List<KeyValuePair<string, CompleteDirectoryEntry>> filesWithEas =
currentDirectory.Where(t => t.Value.Dirent.ea_handle != 0).ToList();

View File

@@ -117,9 +117,8 @@ namespace Aaru.Filesystems.FAT
statfs = new FileSystemInfo
{
Blocks = XmlFsType.Clusters, FilenameLength = 11,
Files = 0, // Requires traversing all directories
FreeFiles = 0, PluginId = Id, FreeBlocks = 0 // Requires traversing the FAT
Blocks = XmlFsType.Clusters, FilenameLength = 11, Files = 0, // Requires traversing all directories
FreeFiles = 0, PluginId = Id, FreeBlocks = 0 // Requires traversing the FAT
};
// This is needed because for FAT16, GEMDOS increases bytes per sector count instead of using big_sectors field.
@@ -774,8 +773,9 @@ namespace Aaru.Filesystems.FAT
eaCache = new Dictionary<string, Dictionary<string, byte[]>>();
// Check OS/2 .LONGNAME
if(eaCache != null &&
(this.@namespace == Namespace.Os2 || this.@namespace == Namespace.Ecs))
if(eaCache != null &&
(this.@namespace == Namespace.Os2 || this.@namespace == Namespace.Ecs) &&
!fat32)
{
List<KeyValuePair<string, CompleteDirectoryEntry>> rootFilesWithEas =
rootDirectoryCache.Where(t => t.Value.Dirent.ea_handle != 0).ToList();