[PATCH v2 3/9] oleaut32/tests: Workaround use after free warnings.
Rémi Bernon
wine at gitlab.winehq.org
Mon Jun 6 01:07:28 CDT 2022
From: Rémi Bernon <rbernon at codeweavers.com>
Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
---
dlls/oleaut32/tests/vartype.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/dlls/oleaut32/tests/vartype.c b/dlls/oleaut32/tests/vartype.c
index c5137572d9d..d955a6d86da 100644
--- a/dlls/oleaut32/tests/vartype.c
+++ b/dlls/oleaut32/tests/vartype.c
@@ -31,6 +31,8 @@
DEFINE_GUID(UUID_test_struct, 0x4029f190, 0xca4a, 0x4611, 0xae,0xb9,0x67,0x39,0x83,0xcb,0x96,0xdd);
+static void (WINAPI *pSysFreeString)(BSTR);
+
/* Some Visual C++ versions choke on __uint64 to float conversions.
* To fix this you need either VC++ 6.0 plus the processor pack
* or Visual C++ >=7.0.
@@ -5843,9 +5845,9 @@ static void test_bstr_cache(void)
str = SysAllocString(testW);
/* This should put the string into cache */
- SysFreeString(str);
+ pSysFreeString(str);
/* The string is in cache, this won't touch it */
- SysFreeString(str);
+ pSysFreeString(str);
ok(SysStringLen(str) == 4, "unexpected len\n");
ok(!lstrcmpW(str, testW), "string changed\n");
@@ -5874,8 +5876,8 @@ static void test_bstr_cache(void)
str2 = SysAllocStringLen(NULL, 16);
ok(str2 == strs[1], "str2 != strs[1]\n");
- SysFreeString(str);
- SysFreeString(str2);
+ pSysFreeString(str);
+ pSysFreeString(str2);
SysFreeString(str);
SysFreeString(str2);
}
@@ -6047,6 +6049,7 @@ static void test_recinfo(void)
START_TEST(vartype)
{
hOleaut32 = GetModuleHandleA("oleaut32.dll");
+ pSysFreeString = (void *)GetProcAddress(hOleaut32, "SysFreeString");
has_i8 = GetProcAddress(hOleaut32, "VarI8FromI1") != NULL;
has_locales = has_i8 && GetProcAddress(hOleaut32, "GetVarConversionLocaleSetting") != NULL;
--
GitLab
https://gitlab.winehq.org/wine/wine/-/merge_requests/180
More information about the wine-devel
mailing list