Commit 2a1dc157 authored by Alexandre Julliard's avatar Alexandre Julliard

ntdll: Fix the libdl refcount when loading the same builtin twice.

parent 1d6db94e
......@@ -179,7 +179,7 @@ static void testNestedLoadLibraryA(void)
/* Try to load the dll again, if refcounting is ok, this should work */
hModule1 = LoadLibraryA(path1);
todo_wine ok(hModule1 != NULL, "LoadLibrary(%s) failed\n", path1);
ok(hModule1 != NULL, "LoadLibrary(%s) failed\n", path1);
if (hModule1 != NULL)
ok(FreeLibrary(hModule1), "FreeLibrary() failed\n");
}
......
......@@ -1553,7 +1553,11 @@ static NTSTATUS load_builtin_dll( LPCWSTR load_path, LPCWSTR path, HANDLE file,
}
}
if (info.status != STATUS_SUCCESS) return info.status;
if (info.status != STATUS_SUCCESS)
{
wine_dll_unload( handle );
return info.status;
}
if (!info.wm)
{
......@@ -1574,6 +1578,7 @@ static NTSTATUS load_builtin_dll( LPCWSTR load_path, LPCWSTR path, HANDLE file,
break;
}
}
wine_dll_unload( handle ); /* release the libdl refcount */
if (!info.wm) return STATUS_INVALID_IMAGE_FORMAT;
if (info.wm->ldr.LoadCount != -1) info.wm->ldr.LoadCount++;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment