Detlef Riekenberg : comdlg32: Validate more parameters in PrintDlgEx.
Module: wine Branch: master Commit: c2aeac3cc07b80d67866e66a6c25e7aadaaa2b09 URL: http://source.winehq.org/git/wine.git/?a=commit;h=c2aeac3cc07b80d67866e66a6c... Author: Detlef Riekenberg <wine.dev(a)web.de> Date: Sun Mar 18 22:14:18 2012 +0100 comdlg32: Validate more parameters in PrintDlgEx. --- dlls/comdlg32/printdlg.c | 28 ++++++++++++++++++++++++++++ 1 files changed, 28 insertions(+), 0 deletions(-) diff --git a/dlls/comdlg32/printdlg.c b/dlls/comdlg32/printdlg.c index 7ce9148..b2edda9 100644 --- a/dlls/comdlg32/printdlg.c +++ b/dlls/comdlg32/printdlg.c @@ -3785,6 +3785,20 @@ HRESULT WINAPI PrintDlgExA(LPPRINTDLGEXA lppd) if (!IsWindow(lppd->hwndOwner)) return E_HANDLE; + if (lppd->nStartPage != START_PAGE_GENERAL) + { + if (!lppd->nPropertyPages) + return E_INVALIDARG; + + FIXME("custom property sheets (%d at %p) not supported\n", lppd->nPropertyPages, lppd->lphPropertyPages); + } + + /* Use PD_NOPAGENUMS or set nMaxPageRanges and lpPageRanges */ + if (!(lppd->Flags & PD_NOPAGENUMS) && (!lppd->nMaxPageRanges || !lppd->lpPageRanges)) + { + return E_INVALIDARG; + } + if (lppd->Flags & PD_RETURNDEFAULT) { PRINTER_INFO_2A *pbuf; @@ -3909,6 +3923,20 @@ HRESULT WINAPI PrintDlgExW(LPPRINTDLGEXW lppd) return E_HANDLE; } + if (lppd->nStartPage != START_PAGE_GENERAL) + { + if (!lppd->nPropertyPages) + return E_INVALIDARG; + + FIXME("custom property sheets (%d at %p) not supported\n", lppd->nPropertyPages, lppd->lphPropertyPages); + } + + /* Use PD_NOPAGENUMS or set nMaxPageRanges and lpPageRanges */ + if (!(lppd->Flags & PD_NOPAGENUMS) && (!lppd->nMaxPageRanges || !lppd->lpPageRanges)) + { + return E_INVALIDARG; + } + if (lppd->Flags & PD_RETURNDEFAULT) { PRINTER_INFO_2W *pbuf; DRIVER_INFO_2W *dbuf;
participants (1)
-
Alexandre Julliard