From 655ddfa8e2ffb3de5c2a8e2ad09606209c2e7a66 Mon Sep 17 00:00:00 2001 From: Victor Perevertkin Date: Mon, 13 Sep 2021 21:13:14 +0300 Subject: [PATCH] [KERNEL32] FindFirstFileExW: fix syscall buffer alignment NtQueryDirectoryFile required the FileInformation buffer to be ULONG-aligned. Declare the aligned buffer explicitly. --- dll/win32/kernel32/client/file/find.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/dll/win32/kernel32/client/file/find.c b/dll/win32/kernel32/client/file/find.c index b5fe7713e53..0fa21ae34be 100644 --- a/dll/win32/kernel32/client/file/find.c +++ b/dll/win32/kernel32/client/file/find.c @@ -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)