Dan Kegel : gdi32: GdiConvertToDevmodeW should not refer to unintialized name bytes.
Alexandre Julliard
julliard at winehq.org
Mon Jun 23 07:35:29 CDT 2008
Module: wine
Branch: master
Commit: 32393796bb534e9cf11dd988dce88722c67f7906
URL: http://source.winehq.org/git/wine.git/?a=commit;h=32393796bb534e9cf11dd988dce88722c67f7906
Author: Dan Kegel <dank at kegel.com>
Date: Sun Jun 22 14:22:06 2008 -0700
gdi32: GdiConvertToDevmodeW should not refer to unintialized name bytes.
---
dlls/gdi32/driver.c | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/dlls/gdi32/driver.c b/dlls/gdi32/driver.c
index 3a2776c..21342bb 100644
--- a/dlls/gdi32/driver.c
+++ b/dlls/gdi32/driver.c
@@ -431,15 +431,19 @@ DEVMODEW * WINAPI GdiConvertToDevmodeW(const DEVMODEA *dmA)
dmW = HeapAlloc(GetProcessHeap(), 0, dmW_size + dmA->dmDriverExtra);
if (!dmW) return NULL;
- MultiByteToWideChar(CP_ACP, 0, (const char*) dmA->dmDeviceName, CCHDEVICENAME,
+ MultiByteToWideChar(CP_ACP, 0, (const char*) dmA->dmDeviceName, -1,
dmW->dmDeviceName, CCHDEVICENAME);
/* copy slightly more, to avoid long computations */
memcpy(&dmW->dmSpecVersion, &dmA->dmSpecVersion, dmA_size - CCHDEVICENAME);
if (dmA_size >= FIELD_OFFSET(DEVMODEA, dmFormName) + CCHFORMNAME)
{
- MultiByteToWideChar(CP_ACP, 0, (const char*) dmA->dmFormName, CCHFORMNAME,
+ if (dmA->dmFields & DM_FORMNAME)
+ MultiByteToWideChar(CP_ACP, 0, (const char*) dmA->dmFormName, -1,
dmW->dmFormName, CCHFORMNAME);
+ else
+ dmW->dmFormName[0] = 0;
+
if (dmA_size > FIELD_OFFSET(DEVMODEA, dmLogPixels))
memcpy(&dmW->dmLogPixels, &dmA->dmLogPixels, dmA_size - FIELD_OFFSET(DEVMODEA, dmLogPixels));
}
More information about the wine-cvs
mailing list