[PATCH v2] oleaut32: Fix VarDateFromStr for the case of a trailing meridiem indicator.
Huw Davies
huw at codeweavers.com
Wed Apr 6 05:15:08 CDT 2016
Signed-off-by: Huw Davies <huw at codeweavers.com>
---
dlls/oleaut32/tests/vartype.c | 3 +++
dlls/oleaut32/vartype.c | 19 +++++++++++++------
2 files changed, 16 insertions(+), 6 deletions(-)
This time with a sign-off (changed config and forgot to add this).
diff --git a/dlls/oleaut32/tests/vartype.c b/dlls/oleaut32/tests/vartype.c
index 03f43ec..7d50545 100644
--- a/dlls/oleaut32/tests/vartype.c
+++ b/dlls/oleaut32/tests/vartype.c
@@ -3528,6 +3528,9 @@ static void test_VarDateFromStr(void)
DFS("1-2-1970"); EXPECT_DBL(25570.0);
DFS("13-1-1970"); EXPECT_DBL(25581.0);
DFS("1970-1-13"); EXPECT_DBL(25581.0);
+ DFS("6/30/2011 01:20:34"); EXPECT_DBL(40724.05594907407);
+ DFS("6/30/2011 01:20:34 AM"); EXPECT_DBL(40724.05594907407);
+ DFS("6/30/2011 01:20:34 PM"); EXPECT_DBL(40724.55594907407);
/* Native fails "1999 January 3, 9AM". I consider that a bug in native */
/* test a non-english data string */
diff --git a/dlls/oleaut32/vartype.c b/dlls/oleaut32/vartype.c
index bf7ebc6..fc5a025 100644
--- a/dlls/oleaut32/vartype.c
+++ b/dlls/oleaut32/vartype.c
@@ -7668,11 +7668,13 @@ HRESULT WINAPI VarDateFromStr(OLECHAR* strIn, LCID lcid, ULONG dwFlags, DATE* pd
/* Parse the string into our structure */
while (*strIn)
{
- if (dp.dwCount >= 6)
- break;
-
if (isdigitW(*strIn))
{
+ if (dp.dwCount >= 6)
+ {
+ hRet = DISP_E_TYPEMISMATCH;
+ break;
+ }
dp.dwValues[dp.dwCount] = strtoulW(strIn, &strIn, 10);
dp.dwCount++;
strIn--;
@@ -7688,9 +7690,14 @@ HRESULT WINAPI VarDateFromStr(OLECHAR* strIn, LCID lcid, ULONG dwFlags, DATE* pd
{
if (i <= 25)
{
- dp.dwValues[dp.dwCount] = ParseDateMonths[i];
- dp.dwFlags[dp.dwCount] |= (DP_MONTH|DP_DATESEP);
- dp.dwCount++;
+ if (dp.dwCount >= 6)
+ hRet = DISP_E_TYPEMISMATCH;
+ else
+ {
+ dp.dwValues[dp.dwCount] = ParseDateMonths[i];
+ dp.dwFlags[dp.dwCount] |= (DP_MONTH|DP_DATESEP);
+ dp.dwCount++;
+ }
}
else if (i > 39 && i < 42)
{
--
2.8.0
More information about the wine-patches
mailing list