[Bug 50622] New: wldap32 calls Linux libraries with wrong conventions

WineHQ Bugzilla wine-bugs at winehq.org
Fri Feb 5 09:31:51 CST 2021


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

            Bug ID: 50622
           Summary: wldap32 calls Linux libraries with wrong conventions
           Product: Wine
           Version: 6.0-rc6
          Hardware: x86-64
                OS: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: wldap32
          Assignee: wine-bugs at winehq.org
          Reporter: gmascellani at codeweavers.com
      Distribution: ---

The code generated by dlls/wldap32/ber.c calls liblber with wrong calling
conventions. For example, looking at the object disassembly I see stuff like:

   1d5bf:       48 8d 54 24 26          lea    0x26(%rsp),%rdx
   1d5c4:       48 89 d9                mov    %rbx,%rcx
   1d5c7:       e8 e4 9c ff ff          callq  172b0 <ber_printf at plt>

Clearly it is trying to call the Linux ber_printf with Microsoft calling
conventions (while liblber expects SYSV calling conventions, using RDI, RSI and
such). This causes adsldp tests to fail on my computer, in a 64-only Wine
build:

../../../../libraries/liblber/encode.c:513: ber_printf: asserzione "LBER_VALID(
ber )" non riuscita.
wine: Assertion failed at address 00007FAF632F8CE1 (thread 0024), starting
debugger...
185335.931000:00f8:00fc:trace:gio:dlls/ntdll/unix/loader.c:1463:dump_argv
Starting command winedbg --auto 32 132
Unhandled exception: assertion failed in 64-bit code (0x00007faf632f8ce1).
Register dump:
 rip:00007faf632f8ce1 rsp:000000000031f630 rbp:00007faf605dd5e1 eflags:00000246
(   - --  I  Z- -P- )
 rax:0000000000000000 rbx:00007faf632ba740 rcx:00007faf632f8ce1
rdx:0000000000000000
 rsi:000000000031f630 rdi:0000000000000002  r8:0000000000000000 
r9:000000000031f630 r10:0000000000000008
 r11:0000000000000246 r12:00007faf609614f8 r13:0000000000000201
r14:00007faf60961033 r15:000000007d9dc330
Stack dump:
0x000000000031f630:  0000000000000000 00007faf6333a6c6
0x000000000031f640:  01000000fbad8000 000000007dad2f10
0x000000000031f650:  000000007dad2f75 000000007dad2f10
0x000000000031f660:  000000007dad2f10 000000007dad2f75
0x000000000031f670:  000000007dad303c 000000007dad2f10
0x000000000031f680:  000000007dad303c 0000000000000000
0x000000000031f690:  0000000000000000 0000000000000000
0x000000000031f6a0:  0000000000000000 0000000000000000
0x000000000031f6b0:  fffffffe7fffffff ffffffffffffffff
0x000000000031f6c0:  ffffffffffffffff ffffffffffffffff
0x000000000031f6d0:  ffffffffffffffff ffffffffffffffff
0x000000000031f6e0:  ffffffffffffffff ffffffffffffffff
Backtrace:
=>0 0x00007faf632f8ce1 execlp+0xffffffffffffffff() in libc.so.6
(0x00007faf605dd5e1)
  1 0x00007faf632e2537 execlp+0xffffffffffffffff() in libc.so.6
(0x00007faf605dd5e1)
  2 0x00007faf632e240f execlp+0xffffffffffffffff() in libc.so.6
(0x00007faf605dd5e1)
  3 0x00007faf632f1662 execlp+0xffffffffffffffff() in libc.so.6
(0x00007faf60961033)
  4 0x00007faf6095c60a ber_write+0xffffffffffffffff() in liblber-2.4.so.2
(0x00007faf60a5e75e)
  5 0x00007faf60a356f6 WLDAP32_ber_printf+0x2f5(berelement=0x7d9dc330,
fmt="i}")
[Z:\home\giovanni\progetti\windows\wine\build64-simple\..\wine\dlls\wldap32\ber.c:392]
in wldap32 (0x000000000031fa90)
  6 0x0000000064342bcd search_SetSearchPreference+0x30c(iface=0xc7f010,
prefs=<is not available>, count=<is not available>)
[Z:\home\giovanni\progetti\windows\wine\build64-simple\..\wine\dlls\adsldp\adsldp.c:1197]
in adsldp (0x0000000000c7f010)
  7 0x00000000004023f8 func_ldap+0xbd7()
[Z:\home\giovanni\progetti\windows\wine\build64-simple\include\iads.h:2777] in
adsldp_test (0x000000000031fc20)
  8 0x000000000040562e main+0x21d(argc=<is not available>, argv=<is not
available>)
[Z:\home\giovanni\progetti\windows\wine\build64-simple\..\wine\include\wine\test.h:569]
in adsldp_test (0x0000000000c61160)
  9 0x0000000000404577 mainCRTStartup+0x66()
[Z:\home\giovanni\progetti\windows\wine\build64-simple\..\wine\dlls\msvcrt\crt_main.c:58]
in adsldp_test (0x0000000000000000)
  10 0x000000007b62dd49 BaseThreadInitThunk+0x8(unknown=<is not available>,
entry=<is not available>, arg=<is not available>)
[Z:\home\giovanni\progetti\windows\wine\build64-simple\..\wine\dlls\kernel32\thread.c:59]
in kernel32 (0x0000000000000000)
  11 0x000000007bc5c043 RtlUserThreadStart+0x82(entry=0x404510,
arg=0x7fffffdaf000)
[Z:\home\giovanni\progetti\windows\wine\build64-simple\..\wine\dlls\ntdll\thread.c:179]
in ntdll (0x0000000000000000)
0x00007faf632f8ce1 execlp+0xffffffffffffffff in libc.so.6: movq   
0x0000000000000108(%rsp),%rax

-- 
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