Alexander Nicolaysen Sørnes : comdlg32: PageSetupDlgA/W: Avoid crash when not passed a DEVMODE structure.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Aug 27 06:07:41 CDT 2007


Module: wine
Branch: master
Commit: 1065d52486e0005be5fd1d19055c546909b4733c
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=1065d52486e0005be5fd1d19055c546909b4733c

Author: Alexander Nicolaysen Sørnes <alex at thehandofagony.com>
Date:   Thu Aug 23 15:09:08 2007 +0200

comdlg32: PageSetupDlgA/W: Avoid crash when not passed a DEVMODE structure.

---

 dlls/comdlg32/printdlg.c |   33 ++++++++++++++++++++-------------
 1 files changed, 20 insertions(+), 13 deletions(-)

diff --git a/dlls/comdlg32/printdlg.c b/dlls/comdlg32/printdlg.c
index 714f09c..f3736ce 100644
--- a/dlls/comdlg32/printdlg.c
+++ b/dlls/comdlg32/printdlg.c
@@ -3167,12 +3167,15 @@ PRINTDLG_PageDlgProcA(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
             EnableWindow(GetDlgItem(hDlg, edt7), FALSE);
 	}
         /* Set orientation radiobutton properly */
-        dm = GlobalLock(pda->dlga->hDevMode);
-        if (dm->u1.s1.dmOrientation == DMORIENT_LANDSCAPE)
-            CheckRadioButton(hDlg, rad1, rad2, rad2);
-	else /* this is default if papersize is not set */
-            CheckRadioButton(hDlg, rad1, rad2, rad1);
-        GlobalUnlock(pda->dlga->hDevMode);
+        if(pda->dlga->hDevMode)
+        {
+            dm = GlobalLock(pda->dlga->hDevMode);
+            if (dm->u1.s1.dmOrientation == DMORIENT_LANDSCAPE)
+                CheckRadioButton(hDlg, rad1, rad2, rad2);
+            else /* this is default if papersize is not set */
+                CheckRadioButton(hDlg, rad1, rad2, rad1);
+            GlobalUnlock(pda->dlga->hDevMode);
+        }
 
 	/* if orientation disabled */
 	if (pda->dlga->Flags & PSD_DISABLEORIENTATION) {
@@ -3280,13 +3283,17 @@ PageDlgProcW(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
             EnableWindow(GetDlgItem(hDlg, edt7), FALSE);
 	}
 
-        dm = GlobalLock(pda->dlga->hDevMode);
-	/* Landscape orientation */
-	if (dm->u1.s1.dmOrientation == DMORIENT_LANDSCAPE)
-            CheckRadioButton(hDlg, rad1, rad2, rad2);
-	else /* this is default if papersize is not set */
-            CheckRadioButton(hDlg, rad1, rad2, rad1);
-        GlobalUnlock(pda->dlga->hDevMode);
+        if(pda->dlga->hDevMode)
+        {
+            dm = GlobalLock(pda->dlga->hDevMode);
+            /* Landscape orientation */
+            if (dm->u1.s1.dmOrientation == DMORIENT_LANDSCAPE)
+                CheckRadioButton(hDlg, rad1, rad2, rad2);
+            else /* this is default if papersize is not set */
+                CheckRadioButton(hDlg, rad1, rad2, rad1);
+            GlobalUnlock(pda->dlga->hDevMode);
+        }
+
 	if (pda->dlga->Flags & PSD_DISABLEORIENTATION) {
 	    EnableWindow(GetDlgItem(hDlg,rad1),FALSE);
 	    EnableWindow(GetDlgItem(hDlg,rad2),FALSE);




More information about the wine-cvs mailing list