Module: wine Branch: master Commit: 2296b4952a3f665e12a189f64457ac2d3074590c URL: https://source.winehq.org/git/wine.git/?a=commit;h=2296b4952a3f665e12a189f64...
Author: Eric Pouech eric.pouech@gmail.com Date: Mon Sep 6 10:40:02 2021 +0200
dbghelp: Return correct error code when reloading a module in SymLoadModule*.
Signed-off-by: Eric Pouech eric.pouech@gmail.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/dbghelp/module.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+)
diff --git a/dlls/dbghelp/module.c b/dlls/dbghelp/module.c index 916aaf5ce53..e0d1dce0c86 100644 --- a/dlls/dbghelp/module.c +++ b/dlls/dbghelp/module.c @@ -815,6 +815,20 @@ DWORD64 WINAPI SymLoadModuleExW(HANDLE hProcess, HANDLE hFile, PCWSTR wImageNam if (wImageName) { module = module_is_already_loaded(pcs, wImageName); + if (module) + { + if (module->module.BaseOfImage == BaseOfDll) + SetLastError(ERROR_SUCCESS); + else + { + /* native allows to load the same module at different addresses + * we don't support this for now + */ + SetLastError(ERROR_INVALID_PARAMETER); + FIXME("Reloading %s at different base address isn't supported\n", debugstr_w(module->modulename)); + } + return 0; + } if (!module && module_is_container_loaded(pcs, wImageName, BaseOfDll)) { /* force the loading of DLL as builtin */