https://bugs.winehq.org/show_bug.cgi?id=56211
Bug ID: 56211 Summary: Wine doesn't set dll path properly when more than one dll with the same name is present Product: Wine Version: 9.0-rc5 Hardware: x86-64 OS: Linux Status: NEW Severity: normal Priority: P2 Component: ntdll Assignee: wine-bugs@winehq.org Reporter: dark.shadow4@web.de Distribution: ---
Found while investigating bug 56209. I'm using MR 4518 (important later).
Using msvbvm50.exe from winetricks (vb5run), the exe unpacks its own ADVPACK.DLL in its current working directory. However, due to the loading order, wine still loads its builtin advpack.dll
However, the loader still sets the nt_path to the originally requested DLL, not the one that actually gets loaded. So the wineserver has mapping->fd unix_path = /home/fabian/Programming/Wine/wine/dlls/advpack/i386-windows/advpack.dll nt_path = /home/fabian/.wine/drive_c/users/fabian/Temp/IXP010.TMP/ADVPACK.DLL
When entering virtual_map_builtin_module we get the filename from the mapping with line
filename = (WCHAR *)(image_info + 1);
This is how you can easiest test that discrepancy. When using the GDB integration MR, that filename is passed to GDB, so it never loads the right symbols for advpack.dll.
https://bugs.winehq.org/show_bug.cgi?id=56211
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |INVALID
--- Comment #1 from Fabian Maurer dark.shadow4@web.de --- According to Alexandre, this is intended behavior, the program shouldn't be aware that a builtin dll was used.
Also see https://gitlab.winehq.org/wine/wine/-/merge_requests/4873
https://bugs.winehq.org/show_bug.cgi?id=56211
Gijs Vermeulen gijsvrm@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #2 from Gijs Vermeulen gijsvrm@gmail.com --- Closing.