Dan Kegel : gdi32: GdiConvertToDevmodeW should not refer to unintialized name bytes.
Module: wine Branch: master Commit: 32393796bb534e9cf11dd988dce88722c67f7906 URL: http://source.winehq.org/git/wine.git/?a=commit;h=32393796bb534e9cf11dd988dc... Author: Dan Kegel <dank(a)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)); }
participants (1)
-
Alexandre Julliard