Module: wine Branch: master Commit: 1ab1c9708745b9cbf5f9540cd799ebff654362d0 URL: https://gitlab.winehq.org/wine/wine/-/commit/1ab1c9708745b9cbf5f9540cd799ebf...
Author: Zhiyi Zhang zzhang@codeweavers.com Date: Sat Nov 25 23:26:58 2023 +0800
ntdll: Fix an out-of-bounds read (Coverity).
class FileRenameInformationEx to FileKnownFolderInformation could cause an out-of-bounds read of info_sizes.
---
dlls/ntdll/unix/file.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c index 98e50082904..ee68e4dee9b 100644 --- a/dlls/ntdll/unix/file.c +++ b/dlls/ntdll/unix/file.c @@ -4264,7 +4264,7 @@ NTSTATUS WINAPI NtQueryAttributesFile( const OBJECT_ATTRIBUTES *attr, FILE_BASIC NTSTATUS WINAPI NtQueryInformationFile( HANDLE handle, IO_STATUS_BLOCK *io, void *ptr, ULONG len, FILE_INFORMATION_CLASS class ) { - static const size_t info_sizes[] = + static const size_t info_sizes[FileMaximumInformation] = { 0, sizeof(FILE_DIRECTORY_INFORMATION), /* FileDirectoryInformation */ @@ -4331,6 +4331,18 @@ NTSTATUS WINAPI NtQueryInformationFile( HANDLE handle, IO_STATUS_BLOCK *io, 0, /* FileHardLinkFullIdInformation */ 0, /* FileIdExtdBothDirectoryInformation */ 0, /* FileDispositionInformationEx */ + 0, /* FileRenameInformationEx */ + 0, /* FileRenameInformationExBypassAccessCheck */ + 0, /* FileDesiredStorageClassInformation */ + 0, /* FileStatInformation */ + 0, /* FileMemoryPartitionInformation */ + 0, /* FileStatLxInformation */ + 0, /* FileCaseSensitiveInformation */ + 0, /* FileLinkInformationEx */ + 0, /* FileLinkInformationExBypassAccessCheck */ + 0, /* FileStorageReserveIdInformation */ + 0, /* FileCaseSensitiveInformationForceAccessCheck */ + 0, /* FileKnownFolderInformation */ };
struct stat st;