Detlef Riekenberg : commdlg: Fix PrintDlg parameter checks.
Alexandre Julliard
julliard at winehq.org
Mon Jan 11 15:59:36 CST 2010
Module: wine
Branch: master
Commit: 93475667a080bf5ea6fd0a4123c52b499ab32067
URL: http://source.winehq.org/git/wine.git/?a=commit;h=93475667a080bf5ea6fd0a4123c52b499ab32067
Author: Detlef Riekenberg <wine.dev at web.de>
Date: Sun Jan 10 20:51:21 2010 +0100
commdlg: Fix PrintDlg parameter checks.
---
dlls/commdlg.dll16/printdlg.c | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/dlls/commdlg.dll16/printdlg.c b/dlls/commdlg.dll16/printdlg.c
index 64bb395..ab6be7c 100644
--- a/dlls/commdlg.dll16/printdlg.c
+++ b/dlls/commdlg.dll16/printdlg.c
@@ -107,6 +107,8 @@ BOOL16 WINAPI PrintDlg16( LPPRINTDLG16 lppd )
PRINTDLGA pd32;
BOOL ret;
+ if (!lppd) return PrintDlgA(NULL); /* generate failure with CDERR_INITIALIZATION */
+
pd32.lStructSize = sizeof(pd32);
pd32.Flags = lppd->Flags & ~(PD_ENABLEPRINTTEMPLATE | PD_ENABLEPRINTTEMPLATEHANDLE |
PD_ENABLESETUPTEMPLATE | PD_ENABLESETUPTEMPLATEHANDLE |
@@ -128,6 +130,9 @@ BOOL16 WINAPI PrintDlg16( LPPRINTDLG16 lppd )
if (lppd->Flags & PD_ENABLESETUPHOOK)
FIXME( "custom setup hook %p no longer supported\n", lppd->lpfnSetupHook );
+ /* Generate failure with CDERR_STRUCTSIZE, when needed */
+ if (lppd->lStructSize != sizeof(PRINTDLG16)) pd32.lStructSize--;
+
if ((ret = PrintDlgA( &pd32 )))
{
lppd->hDC = HDC_16( pd32.hDC );
More information about the wine-cvs
mailing list