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.