mirror of
git://source.winehq.org/git/wine.git
synced 2024-09-15 05:49:49 +00:00
ntdll: Avoid accidentally picking up ntdll's __wine_unix_call_funcs for other DLLs.
Whenf7332ab4a6
switched load_so_dll over to a proper Unix syscall, ntdll.so started providing the symbol __wine_unix_call_funcs. When a DLL calls NtQueryVirtualMemory(MemoryWineUnixFuncs), it can do so speculatively, not knowing whether the corresponding unix lib actually does provide anything. When ntdll.so started providing this symbol, then such speculative calls to NtQueryVirtualMemory(MemoryWineUnixFuncs) would end up returning ntdll's __wine_unix_call_funcs if the intended DLL's unix library lacked one. This is the case with bcrypt, where the unix library doesn't provide __wine_unix_call_funcs if gnutls is unavailable. This fixes crashes afterf7332ab4a6
, in builds without gnutls. Signed-off-by: Martin Storsjö <martin@martin.st>
This commit is contained in:
parent
c2a43defec
commit
d6829bdcba
|
@ -43,8 +43,8 @@ static const WORD current_machine = IMAGE_FILE_MACHINE_ARM64;
|
|||
extern WORD native_machine DECLSPEC_HIDDEN;
|
||||
extern HMODULE ntdll_module DECLSPEC_HIDDEN;
|
||||
|
||||
extern const unixlib_entry_t __wine_unix_call_funcs[];
|
||||
extern const unixlib_entry_t __wine_unix_call_wow64_funcs[];
|
||||
extern const unixlib_entry_t __wine_unix_call_funcs[] DECLSPEC_HIDDEN;
|
||||
extern const unixlib_entry_t __wine_unix_call_wow64_funcs[] DECLSPEC_HIDDEN;
|
||||
|
||||
static const BOOL is_win64 = (sizeof(void *) > sizeof(int));
|
||||
|
||||
|
|
Loading…
Reference in a new issue