On Mon, Aug 7, 2017 at 6:48 PM, Carlos Palminha CARLOS.PALMINHA@synopsys.com wrote:
Fixed some nasty unhandled exceptions when loading libraries that don't have .dll extension.
Problem was caused by wrong string size calculation.
Signed-off-by: Carlos Palminha palminha@synopsys.com
dlls/ntdll/loader.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c index dd1f74c0fc..8fc464bcd7 100644 --- a/dlls/ntdll/loader.c +++ b/dlls/ntdll/loader.c @@ -2141,7 +2141,7 @@ static NTSTATUS find_dll_file( const WCHAR *load_path, const WCHAR *libname, if (!(ext = strrchrW( libname, '.')) || strchrW( ext, '/' ) || strchrW( ext, '\')) { if (!(dllname = RtlAllocateHeap( GetProcessHeap(), 0,
(strlenW(libname) * sizeof(WCHAR)) + sizeof(dllW) )))
(strlenW(libname) * sizeof(WCHAR)) + strlenW(dllW) )))
This doesn't look right. After the change it allocates less memory than before. Notice that strlenW(dllW) == 4 and sizeof(dllW) == 10.
return STATUS_NO_MEMORY; strcpyW( dllname, libname ); strcatW( dllname, dllW );
-- 2.11.0