kernel32: Prevent second loading of a library with specified path.

Alexandre Julliard julliard at winehq.org
Fri Jun 5 08:39:22 CDT 2009


Alexander Morozov <amorozov at 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:
> 1) c:\dir\libliblib.dll and c:\dir\LIBLIB~1.DLL
> 2) \dir\libliblib.dll and \dir\LIBLIB~1.DLL
> 3) .\libliblib.dll and .\LIBLIB~1.DLL
> 4) 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.

-- 
Alexandre Julliard
julliard at winehq.org



More information about the wine-devel mailing list