Module: wine Branch: master Commit: 32393796bb534e9cf11dd988dce88722c67f7906 URL: http://source.winehq.org/git/wine.git/?a=commit;h=32393796bb534e9cf11dd988dc...
Author: Dan Kegel dank@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)); }