Alexander Morozov amorozov@etersoft.ru writes:
Changelog Prevent second loading of a library with specified path
This patch fixes bug #18775. I tested WinXP and Win2003.
When a library have long name (> 8 symbols before extension) an application can run LoadLibrary(long name) and later LoadLibrary(8.3 name). In some cases Windows will load image second time, in other it will return pointer to already loaded image. I found that Windows does not load library second time in these cases:
- c:\dir\libliblib.dll and c:\dir\LIBLIB~1.DLL
- \dir\libliblib.dll and \dir\LIBLIB~1.DLL
- .\libliblib.dll and .\LIBLIB~1.DLL
- dir\libliblib.dll and dir\LIBLIB~1.DLL
and load it in cases: 5) libliblib.dll and LIBLIB~1.DLL 6) c:libliblib.dll and c:LIBLIB~1.DLL
This should most likely be done in ntdll. Also please add tests for these different cases.
This should most likely be done in ntdll. Also please add tests for these different cases.
For tests should create dll which can be loaded. But I do not know how to implement this in tests on WINE. I tried to copy and rename .exe.so module but it seems like the problem is existing only for PE modules.
Alexander Morozov wrote:
This should most likely be done in ntdll. Also please add tests for these different cases.
For tests should create dll which can be loaded. But I do not know how to implement this in tests on WINE. I tried to copy and rename .exe.so module but it seems like the problem is existing only for PE modules.
I think we already create our own dll's for testing purposes, see kernel32/tests/loader.c (test_Loader()).
Will that suffice?
I think we already create our own dll's for testing purposes, see kernel32/tests/loader.c (test_Loader()).
Will that suffice?
Thanks. This is what is need.