[Bug 48620] libmdbx (memory-mapped DB) needs ntdll.NtExtendSection stub

WineHQ Bugzilla wine-bugs at winehq.org
Tue Feb 18 05:07:57 CST 2020


https://bugs.winehq.org/show_bug.cgi?id=48620

--- Comment #8 from Leonid Yuriev <leo at yuriev.ru> ---
(In reply to Anastasius Focht from comment #7)
> Hello folks,
> 
> filling some fields and confirming.

Thanks a lot.

> This results in auto-generated stub ('GetProcAddress' will return non-NULL).
> Any call of the function pointer will result in a crash, accompanied with
> infamous 'unimplemented function foobar' message.

My last question:

- Will the following trick work to determine a stub?
  i.e. is the stub code single and shared for all not implemented functions?

- Otherwise, what other workaround can I use for old Wine versions?

--- snip ---
  mdbx_NtExtendSection =
      (MDBX_NtExtendSection)GetProcAddress(hNtdll, "NtExtendSection");

  /* Workaround for Wine.
   *   erthink: I assume that ZwCallbackReturn in Wine will always be a stub
   *     function or (at least) will be implemented after NtExtendSection).
   *     So, this check allows us to determine NtExtendSection is a stub and
   *     must not be used. */
  const void *unimplemented_stub = GetProcAddress(hNtdll, "ZwCallbackReturn");
  if (mdbx_NtExtendSection == unimplemented_stub)
    mdbx_NtExtendSection = NULL;
--- snip ---

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list