diff --git a/dlls/oleaut32/tests/vartype.c b/dlls/oleaut32/tests/vartype.c index b4f07318355..e46a9b6d7b1 100644 --- a/dlls/oleaut32/tests/vartype.c +++ b/dlls/oleaut32/tests/vartype.c @@ -3720,7 +3720,9 @@ static void test_VarCyFromUI8(void) CONVERT(VarCyFromUI8, 0); EXPECTCY(0); CONVERT(VarCyFromUI8, 1); EXPECTCY(1); CONVERT_I8(VarCyFromUI8, 214748, 1566804068); EXPECTCY64(2147483647ul, 4294951488ul); - CONVERT_I8(VarCyFromUI8, 214748, 1566804069); EXPECT_OVERFLOW; + CONVERT_I8(VarCyFromUI8, 214748, 1566804069); EXPECTCY64(2147483647ul, 4294961488ul); + CONVERT_I8(VarCyFromUI8, 214748, 1566804070); EXPECT_OVERFLOW; + CONVERT_I8(VarCyFromUI8, 214749, 1566804068); EXPECT_OVERFLOW; } static void test_VarCyFromDec(void) @@ -3736,7 +3738,9 @@ static void test_VarCyFromDec(void) CONVERT_DEC(VarCyFromDec,0,0,0,1); EXPECTCY(1); CONVERT_DEC64(VarCyFromDec,0,0,0,214748, 1566804068); EXPECTCY64(2147483647ul, 4294951488ul); - CONVERT_DEC64(VarCyFromDec,0,0,0,214748, 1566804069); EXPECT_OVERFLOW; + CONVERT_DEC64(VarCyFromDec,0,0,0,214748, 1566804069); EXPECTCY64(2147483647ul, 4294961488ul); + CONVERT_DEC64(VarCyFromDec,0,0,0,214748, 1566804070); EXPECT_OVERFLOW; + CONVERT_DEC64(VarCyFromDec,0,0,0,214749, 1566804068); EXPECT_OVERFLOW; CONVERT_DEC(VarCyFromDec,2,0,0,100); EXPECTCY(1); CONVERT_DEC(VarCyFromDec,2,0x80,0,100); EXPECTCY(-1); diff --git a/dlls/oleaut32/vartype.c b/dlls/oleaut32/vartype.c index 3dd65d880ad..2ab54384a0f 100644 --- a/dlls/oleaut32/vartype.c +++ b/dlls/oleaut32/vartype.c @@ -3764,7 +3764,7 @@ HRESULT WINAPI VarCyFromI8(LONG64 llIn, CY* pCyOut) */ HRESULT WINAPI VarCyFromUI8(ULONG64 ullIn, CY* pCyOut) { - if (ullIn >= (I8_MAX/CY_MULTIPLIER)) return DISP_E_OVERFLOW; + if (ullIn > (I8_MAX/CY_MULTIPLIER)) return DISP_E_OVERFLOW; pCyOut->int64 = ullIn * CY_MULTIPLIER; return S_OK; }