[PATCH 3/4] win32u: Calculate buffer sizes from registry structs correctly.
Torge Matthies
wine at gitlab.winehq.org
Thu May 19 14:07:08 CDT 2022
From: Torge Matthies <tmatthies at codeweavers.com>
Signed-off-by: Torge Matthies <tmatthies at codeweavers.com>
---
dlls/win32u/sysparams.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/dlls/win32u/sysparams.c b/dlls/win32u/sysparams.c
index dd494188121..70dc70e4eed 100644
--- a/dlls/win32u/sysparams.c
+++ b/dlls/win32u/sysparams.c
@@ -1258,7 +1258,8 @@ static BOOL update_display_cache_from_registry(void)
sizeof(devicemap_video_keyW) )))
return FALSE;
- status = NtQueryKey( video_key, KeyFullInformation, &key, sizeof(key), &size );
+ status = NtQueryKey( video_key, KeyFullInformation, &key,
+ offsetof(KEY_FULL_INFORMATION, Class), &size );
if (status && status != STATUS_BUFFER_OVERFLOW)
return FALSE;
@@ -3190,7 +3191,7 @@ void sysparams_init(void)
if ((hkey = reg_open_key( config_key, software_fontsW, sizeof(software_fontsW) )))
{
- char buffer[sizeof(KEY_VALUE_PARTIAL_INFORMATION) + sizeof(DWORD)];
+ char buffer[offsetof(KEY_VALUE_PARTIAL_INFORMATION, Data) + sizeof(DWORD)];
KEY_VALUE_PARTIAL_INFORMATION *value = (void *)buffer;
if (query_reg_value( hkey, log_pixelsW, value, sizeof(buffer) ) && value->Type == REG_DWORD)
--
GitLab
https://gitlab.winehq.org/wine/wine/-/merge_requests/98
More information about the wine-devel
mailing list