Module: wine
Branch: master
Commit: c9d2b62926883e7952a4585d09c6aa73335e9ede
URL: https://source.winehq.org/git/wine.git/?a=commit;h=c9d2b62926883e7952a4585d…
Author: Zhiyi Zhang <zzhang(a)codeweavers.com>
Date: Tue Aug 11 18:16:33 2020 +0800
explorer: Zero initialize DEVMODE before passing it to EnumDisplaySettings().
EnumDisplaySettings() on Wine does not write beyond the end of DEVMODE because it doesn't use
dmDriverExtra currently, but this implementation detail should not be relied on.
Signed-off-by: Zhiyi Zhang <zzhang(a)codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
programs/explorer/desktop.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/programs/explorer/desktop.c b/programs/explorer/desktop.c
index 691db5c8bd..6f1ff54c14 100644
--- a/programs/explorer/desktop.c
+++ b/programs/explorer/desktop.c
@@ -889,6 +889,7 @@ static void initialize_display_settings(void)
/* Store current display mode in the registry */
ddW.cb = sizeof(ddW);
+ memset(&dmW, 0, sizeof(dmW));
dmW.dmSize = sizeof(dmW);
while (EnumDisplayDevicesW( NULL, i++, &ddW, 0 ))
{
Module: wine
Branch: master
Commit: 6185252bbcd0d871c906d78299a4603f623ba4f0
URL: https://source.winehq.org/git/wine.git/?a=commit;h=6185252bbcd0d871c906d782…
Author: Zhiyi Zhang <zzhang(a)codeweavers.com>
Date: Tue Aug 11 18:16:21 2020 +0800
winemac.drv: Zero initialize DEVMODE before passing it to EnumDisplaySettings().
EnumDisplaySettings() on Wine does not write beyond the end of DEVMODE because it doesn't use
dmDriverExtra currently, but this implementation detail should not be relied on.
Signed-off-by: Zhiyi Zhang <zzhang(a)codeweavers.com>
Signed-off-by: Ken Thomases <ken(a)codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
dlls/winemac.drv/display.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/dlls/winemac.drv/display.c b/dlls/winemac.drv/display.c
index 522ff57d7a..9a80308e89 100644
--- a/dlls/winemac.drv/display.c
+++ b/dlls/winemac.drv/display.c
@@ -847,6 +847,7 @@ LONG CDECL macdrv_ChangeDisplaySettingsEx(LPCWSTR devname, LPDEVMODEW devmode,
if (!devname && !devmode)
{
+ memset(&default_mode, 0, sizeof(default_mode));
default_mode.dmSize = sizeof(default_mode);
if (!EnumDisplaySettingsExW(primary_adapter, ENUM_REGISTRY_SETTINGS, &default_mode, 0))
{
Module: wine
Branch: master
Commit: 6d68c38c886a4b7733891e6ab60c800e9187f60a
URL: https://source.winehq.org/git/wine.git/?a=commit;h=6d68c38c886a4b7733891e6a…
Author: Zhiyi Zhang <zzhang(a)codeweavers.com>
Date: Tue Aug 11 18:15:28 2020 +0800
user32/tests: Zero initialize DEVMODE before passing it to EnumDisplaySettings().
Zero initialize DEVMODE before passing it to EnumDisplaySettings(), which may write beyond the end
of the DEVMODE structure on Windows because the dmDriverExtra field is uninitialized.
Signed-off-by: Zhiyi Zhang <zzhang(a)codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
dlls/user32/tests/monitor.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/dlls/user32/tests/monitor.c b/dlls/user32/tests/monitor.c
index 85fb2f080a..57d2ec0008 100644
--- a/dlls/user32/tests/monitor.c
+++ b/dlls/user32/tests/monitor.c
@@ -514,6 +514,7 @@ static void test_ChangeDisplaySettingsEx(void)
devices[device_count].index = device;
lstrcpyA(devices[device_count].name, dd.DeviceName);
+ memset(&devices[device_count].original_mode, 0, sizeof(devices[device_count].original_mode));
devices[device_count].original_mode.dmSize = sizeof(devices[device_count].original_mode);
res = EnumDisplaySettingsA(dd.DeviceName, ENUM_CURRENT_SETTINGS, &devices[device_count].original_mode);
ok(res, "EnumDisplaySettingsA %s failed, error %#x\n", dd.DeviceName, GetLastError());