[PATCH 2/2] ntdll: Align FILE_*_DIRECTORY_INFORMATION structs to 8 bytes
Martin Storsjo
martin at martin.st
Thu May 15 07:25:05 CDT 2014
Previously they were only aligned to 4 byte boundaries.
According to MSDN, they should be aligned to 8 byte boundaries
instead.
This matches what Windows actually does (tested on Windows 8.1).
This doesn't fix any currently known issue, but brings the behaviour
closer in line with specs.
---
dlls/ntdll/directory.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/dlls/ntdll/directory.c b/dlls/ntdll/directory.c
index 50bf66a..04a5b75 100644
--- a/dlls/ntdll/directory.c
+++ b/dlls/ntdll/directory.c
@@ -228,15 +228,15 @@ static inline unsigned int dir_info_size( FILE_INFORMATION_CLASS class, unsigned
switch (class)
{
case FileDirectoryInformation:
- return (FIELD_OFFSET( FILE_DIRECTORY_INFORMATION, FileName[len] ) + 3) & ~3;
+ return (FIELD_OFFSET( FILE_DIRECTORY_INFORMATION, FileName[len] ) + 7) & ~7;
case FileBothDirectoryInformation:
- return (FIELD_OFFSET( FILE_BOTH_DIRECTORY_INFORMATION, FileName[len] ) + 3) & ~3;
+ return (FIELD_OFFSET( FILE_BOTH_DIRECTORY_INFORMATION, FileName[len] ) + 7) & ~7;
case FileFullDirectoryInformation:
- return (FIELD_OFFSET( FILE_FULL_DIRECTORY_INFORMATION, FileName[len] ) + 3) & ~3;
+ return (FIELD_OFFSET( FILE_FULL_DIRECTORY_INFORMATION, FileName[len] ) + 7) & ~7;
case FileIdBothDirectoryInformation:
- return (FIELD_OFFSET( FILE_ID_BOTH_DIRECTORY_INFORMATION, FileName[len] ) + 3) & ~3;
+ return (FIELD_OFFSET( FILE_ID_BOTH_DIRECTORY_INFORMATION, FileName[len] ) + 7) & ~7;
case FileIdFullDirectoryInformation:
- return (FIELD_OFFSET( FILE_ID_FULL_DIRECTORY_INFORMATION, FileName[len] ) + 3) & ~3;
+ return (FIELD_OFFSET( FILE_ID_FULL_DIRECTORY_INFORMATION, FileName[len] ) + 7) & ~7;
default:
assert(0);
return 0;
--
1.8.5.2 (Apple Git-48)
More information about the wine-patches
mailing list