From 55fe39e07b6070df17311c65a192ad0fe321c907 Mon Sep 17 00:00:00 2001 From: Detlef Riekenberg Date: Mon, 22 Oct 2007 18:18:41 +0200 Subject: [PATCH] comdlg32: Do not crash with PageSetupDlg(NULL). --- dlls/comdlg32/printdlg.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/dlls/comdlg32/printdlg.c b/dlls/comdlg32/printdlg.c index 490a794609f..b9956245f43 100644 --- a/dlls/comdlg32/printdlg.c +++ b/dlls/comdlg32/printdlg.c @@ -3383,6 +3383,11 @@ BOOL WINAPI PageSetupDlgA(LPPAGESETUPDLGA setupdlg) { PageSetupDataA *pda; PRINTDLGA pdlg; + if (setupdlg == NULL) { + COMDLG32_SetCommDlgExtendedError(CDERR_INITIALIZATION); + return FALSE; + } + /* TRACE */ if(TRACE_ON(commdlg)) { char flagstr[1000] = ""; @@ -3399,11 +3404,8 @@ BOOL WINAPI PageSetupDlgA(LPPAGESETUPDLGA setupdlg) { setupdlg->hDevNames, setupdlg->hInstance, setupdlg->Flags, flagstr); } + /* Checking setupdlg structure */ - if (setupdlg == NULL) { - COMDLG32_SetCommDlgExtendedError(CDERR_INITIALIZATION); - return FALSE; - } if(setupdlg->lStructSize != sizeof(PAGESETUPDLGA)) { COMDLG32_SetCommDlgExtendedError(CDERR_STRUCTSIZE); return FALSE; @@ -3488,6 +3490,12 @@ BOOL WINAPI PageSetupDlgW(LPPAGESETUPDLGW setupdlg) { PRINTDLGW pdlg; FIXME("Unicode implementation is not done yet\n"); + + if (setupdlg == NULL) { + COMDLG32_SetCommDlgExtendedError(CDERR_INITIALIZATION); + return FALSE; + } + if(TRACE_ON(commdlg)) { char flagstr[1000] = ""; const struct pd_flags *pflag = psd_flags;