From: Eric Pouech <eric.pouech(a)gmail.com> Using old versions of the module information structure. Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54465 Signed-off-by: Eric Pouech <eric.pouech(a)gmail.com> --- dlls/dbghelp/tests/dbghelp.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/dlls/dbghelp/tests/dbghelp.c b/dlls/dbghelp/tests/dbghelp.c index 713c93b0a02..24e0b87ba6f 100644 --- a/dlls/dbghelp/tests/dbghelp.c +++ b/dlls/dbghelp/tests/dbghelp.c @@ -223,8 +223,6 @@ static void test_modules(void) const DWORD64 base2 = 0x08010000; IMAGEHLP_MODULEW64 im; - im.SizeOfStruct = sizeof(im); - /* can sym load an exec of different bitness even if 32Bit flag not set */ SymSetOptions(SymGetOptions() & ~SYMOPT_INCLUDE_32BIT_MODULES); @@ -237,6 +235,8 @@ static void test_modules(void) { ret = SymLoadModule(GetCurrentProcess(), NULL, "C:\\windows\\syswow64\\notepad.exe", NULL, base2, 0); ok(ret, "SymLoadModule failed: %lu\n", GetLastError()); + /* use old version of module info (Win7 doesn't support more recent versions) */ + im.SizeOfStruct = sizeof(IMAGEHLP_MODULEW); ret = SymGetModuleInfoW64(GetCurrentProcess(), base2, &im); ok(ret, "SymGetModuleInfoW64 failed: %lu\n", GetLastError()); ok(im.BaseOfImage == base2, "Wrong base address\n"); @@ -246,14 +246,16 @@ static void test_modules(void) ret = SymLoadModule(GetCurrentProcess(), NULL, "C:\\windows\\system32\\notepad.exe", NULL, base1, 0); ok(ret, "SymLoadModule failed: %lu\n", GetLastError()); + im.SizeOfStruct = sizeof(im); ret = SymGetModuleInfoW64(GetCurrentProcess(), base1, &im); /* we want to access IMAGEHLP_MODULE.MachineType, so ensure that error stems from a too old * dbghelp (on Windows), not supporting new enlarged IMAGEHLP_MODULE structures. */ if (broken(!ret && GetLastError() == ERROR_INVALID_PARAMETER)) { - IMAGEHLP_MODULE im0 = {sizeof(im0)}; - ret = SymGetModuleInfo(GetCurrentProcess(), base1, &im0); + /* use old version of module info (Win7 doesn't support more recent versions) */ + im.SizeOfStruct = sizeof(IMAGEHLP_MODULEW); + ret = SymGetModuleInfoW64(GetCurrentProcess(), base1, &im); ok(ret, "Unexpected error: %lu\n", GetLastError()); skip("Too old dbghelp. Skipping module tests\n"); ret = SymCleanup(GetCurrentProcess()); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/2152