[KERNEL32] FindFirstFileExW: fix syscall buffer alignment
authorVictor Perevertkin <victor.perevertkin@reactos.org>
Mon, 13 Sep 2021 18:13:14 +0000 (21:13 +0300)
committerVictor Perevertkin <victor.perevertkin@reactos.org>
Tue, 14 Sep 2021 14:58:22 +0000 (17:58 +0300)
NtQueryDirectoryFile required the FileInformation buffer to be
ULONG-aligned. Declare the aligned buffer explicitly.

dll/win32/kernel32/client/file/find.c

index b5fe771..0fa21ae 100644 (file)
@@ -687,9 +687,10 @@ FindFirstFileExW(IN LPCWSTR lpFileName,
         /*
          * May represent many FILE_BOTH_DIR_INFORMATION
          * or many FILE_FULL_DIR_INFORMATION structures.
+         * NOTE: NtQueryDirectoryFile requires the buffer to be ULONG-aligned
          */
-        BYTE DirectoryInfo[FIND_DATA_SIZE];
-        DIR_INFORMATION DirInfo = {&DirectoryInfo};
+        DECLSPEC_ALIGN(4) BYTE DirectoryInfo[FIND_DATA_SIZE];
+        DIR_INFORMATION DirInfo = { .DirInfo = &DirectoryInfo };
 
         /* The search filter is always unused */
         if (lpSearchFilter)