comctl32: datetime: Test for out of range dates in DTM_SETSYSTEMTIME only when flag=GDT_VALID

Kanit Therdsteerasukdi therdste at ucla.edu
Thu Mar 15 16:26:59 CDT 2007


DTM_SETSYSTEMTIME should check for whether the input lpSysTime of type
SYSTEMTIME is out of range only when flag=GDT_VALID.
-------------- next part --------------
>From 1408a887ef4c8d6c6a9b8bf5e0aaa3bd130305b4 Mon Sep 17 00:00:00 2001
From: Kanit Therdsteerasukdi <therdste at ucla.edu>
Date: Wed, 14 Mar 2007 20:10:55 -0700
Subject: [PATCH] comctl32: datetime: Test for out of range dates in DTM_SETSYSTEMTIME only when flag=GDT_VALID

---
 dlls/comctl32/datetime.c |   22 +++++++++++-----------
 1 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/dlls/comctl32/datetime.c b/dlls/comctl32/datetime.c
index 08e0d58..361729f 100644
--- a/dlls/comctl32/datetime.c
+++ b/dlls/comctl32/datetime.c
@@ -160,18 +160,18 @@ DATETIME_SetSystemTime (DATETIME_INFO *infoPtr, DWORD flag, SYSTEMTIME *lprgSysT
           lprgSysTimeArray->wYear, lprgSysTimeArray->wMonth, lprgSysTimeArray->wDay,
           lprgSysTimeArray->wHour, lprgSysTimeArray->wMinute, lprgSysTimeArray->wSecond);
 
-    if (lprgSysTimeArray->wYear < 1601 || lprgSysTimeArray->wYear > 30827 ||
-	lprgSysTimeArray->wMonth < 1 || lprgSysTimeArray->wMonth > 12 ||
-	lprgSysTimeArray->wDayOfWeek > 6 ||
-	lprgSysTimeArray->wDay < 1 || lprgSysTimeArray->wDay > 31 ||
-	lprgSysTimeArray->wHour > 23 ||
-	lprgSysTimeArray->wMinute > 59 ||
-	lprgSysTimeArray->wSecond > 59 ||
-	lprgSysTimeArray->wMilliseconds > 999
-	)
-      return 0;
-
     if (flag == GDT_VALID) {
+      if (lprgSysTimeArray->wYear < 1601 || lprgSysTimeArray->wYear > 30827 ||
+          lprgSysTimeArray->wMonth < 1 || lprgSysTimeArray->wMonth > 12 ||
+          lprgSysTimeArray->wDayOfWeek > 6 ||
+          lprgSysTimeArray->wDay < 1 || lprgSysTimeArray->wDay > 31 ||
+          lprgSysTimeArray->wHour > 23 ||
+          lprgSysTimeArray->wMinute > 59 ||
+          lprgSysTimeArray->wSecond > 59 ||
+          lprgSysTimeArray->wMilliseconds > 999
+          )
+        return 0;
+
         infoPtr->dateValid = TRUE;
         MONTHCAL_CopyTime (lprgSysTimeArray, &infoPtr->date);
         SendMessageW (infoPtr->hMonthCal, MCM_SETCURSEL, 0, (LPARAM)(&infoPtr->date));
-- 
1.4.4.4



More information about the wine-patches mailing list