• Martin Storsjö's avatar
    ntdll: Avoid accidentally picking up ntdll's __wine_unix_call_funcs for other DLLs. · d6829bdc
    Martin Storsjö authored
    When f7332ab4 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 after f7332ab4,
    in builds without gnutls.
    Signed-off-by: 's avatarMartin Storsjö <martin@martin.st>
    d6829bdc
unix_private.h 23.5 KB