sys: dirctl: add magic constant 4 to EaSize

This commit is contained in:
Bill Zissimopoulos 2019-03-21 21:50:28 -07:00
parent 88896c2fd8
commit 574efe3f72
No known key found for this signature in database
GPG Key ID: 3D4F95D52C7B3EA3

View File

@ -229,11 +229,17 @@ static NTSTATUS FspFsvolQueryDirectoryCopy(
case FileFullDirectoryInformation: case FileFullDirectoryInformation:
FILL_INFO(FILE_FULL_DIR_INFORMATION, FILL_INFO(FILE_FULL_DIR_INFORMATION,
Info->EaSize = ReturnEaSize ? DirInfo->FileInfo.EaSize : 0; Info->EaSize = ReturnEaSize ? DirInfo->FileInfo.EaSize : 0;
/* magic computations are courtesy of NTFS */
if (0 != Info->EaSize)
Info->EaSize += 4;
); );
break; break;
case FileIdFullDirectoryInformation: case FileIdFullDirectoryInformation:
FILL_INFO(FILE_ID_FULL_DIR_INFORMATION, FILL_INFO(FILE_ID_FULL_DIR_INFORMATION,
Info->EaSize = ReturnEaSize ? DirInfo->FileInfo.EaSize : 0; Info->EaSize = ReturnEaSize ? DirInfo->FileInfo.EaSize : 0;
/* magic computations are courtesy of NTFS */
if (0 != Info->EaSize)
Info->EaSize += 4;
Info->FileId.QuadPart = DirInfo->FileInfo.IndexNumber; Info->FileId.QuadPart = DirInfo->FileInfo.IndexNumber;
); );
break; break;
@ -243,6 +249,9 @@ static NTSTATUS FspFsvolQueryDirectoryCopy(
case FileBothDirectoryInformation: case FileBothDirectoryInformation:
FILL_INFO(FILE_BOTH_DIR_INFORMATION, FILL_INFO(FILE_BOTH_DIR_INFORMATION,
Info->EaSize = ReturnEaSize ? DirInfo->FileInfo.EaSize : 0; Info->EaSize = ReturnEaSize ? DirInfo->FileInfo.EaSize : 0;
/* magic computations are courtesy of NTFS */
if (0 != Info->EaSize)
Info->EaSize += 4;
Info->ShortNameLength = 0; Info->ShortNameLength = 0;
RtlZeroMemory(Info->ShortName, sizeof Info->ShortName); RtlZeroMemory(Info->ShortName, sizeof Info->ShortName);
); );
@ -250,6 +259,9 @@ static NTSTATUS FspFsvolQueryDirectoryCopy(
case FileIdBothDirectoryInformation: case FileIdBothDirectoryInformation:
FILL_INFO(FILE_ID_BOTH_DIR_INFORMATION, FILL_INFO(FILE_ID_BOTH_DIR_INFORMATION,
Info->EaSize = ReturnEaSize ? DirInfo->FileInfo.EaSize : 0; Info->EaSize = ReturnEaSize ? DirInfo->FileInfo.EaSize : 0;
/* magic computations are courtesy of NTFS */
if (0 != Info->EaSize)
Info->EaSize += 4;
Info->ShortNameLength = 0; Info->ShortNameLength = 0;
RtlZeroMemory(Info->ShortName, sizeof Info->ShortName); RtlZeroMemory(Info->ShortName, sizeof Info->ShortName);
Info->FileId.QuadPart = DirInfo->FileInfo.IndexNumber; Info->FileId.QuadPart = DirInfo->FileInfo.IndexNumber;