Module: wine Branch: master Commit: 4ecda80c6c97092e30b36fd3b0694d306f37dd46 URL: http://source.winehq.org/git/wine.git/?a=commit;h=4ecda80c6c97092e30b36fd3b0...
Author: Patrick Rudolph siro@das-labor.org Date: Wed Apr 23 17:36:06 2014 +0200
user32: Check for valid cbSize in GetMonitorInfoW.
---
dlls/user32/misc.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/dlls/user32/misc.c b/dlls/user32/misc.c index d9eec26..15dd75a 100644 --- a/dlls/user32/misc.c +++ b/dlls/user32/misc.c @@ -440,7 +440,12 @@ BOOL WINAPI GetMonitorInfoA(HMONITOR hMonitor, LPMONITORINFO lpMonitorInfo) */ BOOL WINAPI GetMonitorInfoW(HMONITOR hMonitor, LPMONITORINFO lpMonitorInfo) { - BOOL ret = USER_Driver->pGetMonitorInfo( hMonitor, lpMonitorInfo ); + BOOL ret; + + if (lpMonitorInfo->cbSize != sizeof(MONITORINFOEXW) && lpMonitorInfo->cbSize != sizeof(MONITORINFO)) + return FALSE; + + ret = USER_Driver->pGetMonitorInfo( hMonitor, lpMonitorInfo ); if (ret) TRACE("flags %04x, monitor %s, work %s\n", lpMonitorInfo->dwFlags, wine_dbgstr_rect(&lpMonitorInfo->rcMonitor),