[Bug 47077] Brawlhalla (Steam) crashes with Wine 4.6 ( Steam Game Overlay Renderer hook engine can't cope with GOT/ PIC register load code at API entry, needs DECLSPEC_HOTPATCH for setupapi.SetupDiEnumDeviceInfo)
wine-bugs at winehq.org
wine-bugs at winehq.org
Sat Apr 27 03:56:15 CDT 2019
https://bugs.winehq.org/show_bug.cgi?id=47077
Anastasius Focht <focht at gmx.net> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|Regression: Brawlhalla |Brawlhalla (Steam) crashes
|crashes with latest wine |with Wine 4.6 (Steam Game
| |Overlay Renderer hook
| |engine can't cope with
| |GOT/PIC register load code
| |at API entry, needs
| |DECLSPEC_HOTPATCH for
| |setupapi.SetupDiEnumDeviceI
| |nfo)
CC| |focht at gmx.net
URL|http://www.brawlhalla.com/p |https://store.steampowered.
|lay/ |com/app/291550/Brawlhalla/
Component|-unknown |setupapi
--- Comment #7 from Anastasius Focht <focht at gmx.net> ---
Hello folks,
confirming. Refining some fields to be less ambiguous and have better Bugzilla
query results.
The game seems to use Adobe AIR but the culprit is Steam Game Overlay Renderer
hooking various APIs, and some of them have GOT/PIC register load code directly
at API entry which is a no-no.
--- snip ---
SetupDiEnumDeviceInfo:
79162040 E9 C5E0EA05 JMP 7F01010A
79162045 05 BBBF0500 ADD EAX,5BFBB
7916204A 8D4C24 04 LEA ECX,DWORD PTR SS:[ESP+4]
7916204E 83E4 F0 AND ESP,FFFFFFF0
79162051 FF71 FC PUSH DWORD PTR DS:[ECX-4]
79162054 55 PUSH EBP
79162055 89E5 MOV EBP,ESP
79162057 57 PUSH EDI
79162058 56 PUSH ESI
79162059 53 PUSH EBX
7916205A 51 PUSH ECX
7916205B 83EC 18 SUB ESP,18
7916205E 8B11 MOV EDX,DWORD PTR DS:[ECX]
79162060 8B59 04 MOV EBX,DWORD PTR DS:[ECX+4]
79162063 8B71 08 MOV ESI,DWORD PTR DS:[ECX+8]
79162066 F680 141D0100 08 TEST BYTE PTR DS:[EAX+11D14],8 ; *boom*
7916206D 75 61 JNZ SHORT setupapi.791620D0
7916206F 8D42 FF LEA EAX,DWORD PTR DS:[EDX-1]
79162072 83F8 FD CMP EAX,-3
...
7F01010A E9 918B0891 JMP gameover.10098CA0
7F01010F 0000 ADD BYTE PTR DS:[EAX],AL
7F010111 0000 ADD BYTE PTR DS:[EAX],AL
--- snip ---
--- snip ---
Executable modules
Base Size Entry Name File version Path
00400000 00027000 00401725 Brawlhal C:\Program Files
(x86)\Steam\steamapps\common\Brawlhalla\Brawlhalla.exe
018A0000 0150D000 018F5187 Adobe_AI 19.0.0.213 C:\Program Files
(x86)\Steam\steamapps\common\Brawlhalla\Adobe AIR\Versions\1.0\Adobe AIR.dll
10000000 00164000 100A6D61 gameover 05.03.63.53 C:\Program Files
(x86)\Steam\gameoverlayrenderer.dll
79150000 00085000 79155AA0 setupapi
C:\windows\system32\setupapi.dll
7A390000 00112000 7A393D00 opengl32 5.1.2600.2082
C:\windows\system32\opengl32.dll
...
--- snip ---
--- snip ---
$ gdb
/home/focht/projects/wine/staging-install-4.6-x86_64/lib/wine/setupapi.dll.so
-batch -ex 'disassemble SetupDiEnumDeviceInfo'
Dump of assembler code for function SetupDiEnumDeviceInfo:
0x00023040 <+0>: call 0x294b6 <__x86.get_pc_thunk.ax>
0x00023045 <+5>: add $0x5bfbb,%eax
0x0002304a <+10>: lea 0x4(%esp),%ecx
0x0002304e <+14>: and $0xfffffff0,%esp
0x00023051 <+17>: pushl -0x4(%ecx)
0x00023054 <+20>: push %ebp
0x00023055 <+21>: mov %esp,%ebp
0x00023057 <+23>: push %edi
0x00023058 <+24>: push %esi
0x00023059 <+25>: push %ebx
0x0002305a <+26>: push %ecx
0x0002305b <+27>: sub $0x18,%esp
0x0002305e <+30>: mov (%ecx),%edx
0x00023060 <+32>: mov 0x4(%ecx),%ebx
0x00023063 <+35>: mov 0x8(%ecx),%esi
0x00023066 <+38>: testb $0x8,0x11d14(%eax)
0x0002306d <+45>: jne 0x230d0 <SetupDiEnumDeviceInfo+144>
0x0002306f <+47>: lea -0x1(%edx),%eax
...
--- snip ---
Regards
--
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