From a50a2167a2160dd345c4e7eeaab46a6bb1b4639c Mon Sep 17 00:00:00 2001 From: Daniel Lehman Date: Tue, 31 Jul 2018 11:30:39 -0700 Subject: [PATCH 2/2] oleaut32: Extend value range before getting absolute value in VarBstrFromI4. Signed-off-by: Daniel Lehman --- dlls/oleaut32/tests/vartype.c | 2 +- dlls/oleaut32/vartype.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dlls/oleaut32/tests/vartype.c b/dlls/oleaut32/tests/vartype.c index 8c454e2b7b..7daf2f032c 100644 --- a/dlls/oleaut32/tests/vartype.c +++ b/dlls/oleaut32/tests/vartype.c @@ -4556,7 +4556,7 @@ static void test_VarBstrFromI4(void) ok(hres == S_OK, "got hres 0x%08x\n", hres); if (bstr) { - todo_wine ok(memcmp(bstr, int_min, sizeof(int_min)) == 0, "string different\n"); + ok(memcmp(bstr, int_min, sizeof(int_min)) == 0, "string different\n"); SysFreeString(bstr); } diff --git a/dlls/oleaut32/vartype.c b/dlls/oleaut32/vartype.c index 37c4be5534..232a58fe27 100644 --- a/dlls/oleaut32/vartype.c +++ b/dlls/oleaut32/vartype.c @@ -6453,7 +6453,7 @@ HRESULT WINAPI VarBstrFromI4(LONG lIn, LCID lcid, ULONG dwFlags, BSTR* pbstrOut) if (lIn < 0) { - ul64 = (ULONG)-lIn; + ul64 = -(LONG64)lIn; dwFlags |= VAR_NEGATIVE; } return VARIANT_BstrFromUInt(ul64, lcid, dwFlags, pbstrOut); -- 2.17.0