gdi.exe: Ignore invalid DEVMODE passed to CreateDC.

Dmitry Timoshkov dmitry at baikal.ru
Tue Nov 17 01:09:30 CST 2015


Perhaps this is a better fix for bug 19160.

Signed-off-by: Dmitry Timoshkov <dmitry at baikal.ru>
---
 dlls/gdi.exe16/gdi.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/dlls/gdi.exe16/gdi.c b/dlls/gdi.exe16/gdi.c
index 8ee37d7..6302dea 100644
--- a/dlls/gdi.exe16/gdi.c
+++ b/dlls/gdi.exe16/gdi.c
@@ -1172,6 +1172,11 @@ HDC16 WINAPI CreateCompatibleDC16( HDC16 hdc )
 HDC16 WINAPI CreateDC16( LPCSTR driver, LPCSTR device, LPCSTR output,
                          const DEVMODEA *initData )
 {
+    if (initData && initData->dmSize > sizeof(DEVMODEA))
+    {
+        WARN("invalid dmSize (%u bytes), ignoring\n", initData->dmSize);
+        initData = NULL;
+    }
     return HDC_16( CreateDCA( driver, device, output, initData ) );
 }
 
-- 
2.6.3




More information about the wine-patches mailing list