[Bug 43480] Peavey Revalver IV (Amp modeling software) crashes due to missing Win7+ Touch Input API (stubs)

wine-bugs at winehq.org wine-bugs at winehq.org
Mon Aug 14 04:08:57 CDT 2017


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

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Fixed by SHA1|                            |797a746fc2a1b17d67b7423293e
                   |                            |081e3e7171033
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #4 from Anastasius Focht <focht at gmx.net> ---
Hello folks,

Win7+ Touch Input API stubs got added, thanks Austin.

--- snip ---
...
0031:Call KERNEL32.GetModuleHandleA(01494af4 "user32.dll") ret=005cbdfb
0031:Ret  KERNEL32.GetModuleHandleA() retval=7ebb0000 ret=005cbdfb
0031:Call KERNEL32.GetProcAddress(7ebb0000,014bf690 "RegisterTouchWindow")
ret=005cbe06
0031:Ret  KERNEL32.GetProcAddress() retval=7ebbb160 ret=005cbe06
0031:Call KERNEL32.GetModuleHandleA(01494af4 "user32.dll") ret=005cbdfb
0031:Ret  KERNEL32.GetModuleHandleA() retval=7ebb0000 ret=005cbdfb
0031:Call KERNEL32.GetProcAddress(7ebb0000,014bf6a4 "GetTouchInputInfo")
ret=005cbe06
0031:Ret  KERNEL32.GetProcAddress() retval=7ebba0e0 ret=005cbe06
0031:Call KERNEL32.GetModuleHandleA(01494af4 "user32.dll") ret=005cbdfb
0031:Ret  KERNEL32.GetModuleHandleA() retval=7ebb0000 ret=005cbdfb
0031:Call KERNEL32.GetProcAddress(7ebb0000,014bf6b8 "CloseTouchInputHandle")
ret=005cbe06
0031:Ret  KERNEL32.GetProcAddress() retval=7ebb8628 ret=005cbe06
0031:Call KERNEL32.GetModuleHandleA(01494af4 "user32.dll") ret=005cbdfb
0031:Ret  KERNEL32.GetModuleHandleA() retval=7ebb0000 ret=005cbdfb
0031:Call KERNEL32.GetProcAddress(7ebb0000,014bf6d0 "GetGestureInfo")
ret=005cbe06
0031:Ret  KERNEL32.GetProcAddress() retval=7ebb9990 ret=005cbe06
0031:Call user32.RegisterTouchWindow(00010078,00000000) ret=0089c04a
0031:fixme:win:RegisterTouchWindow (0x10078 00000000): stub
0031:Ret  user32.RegisterTouchWindow() retval=00000000 ret=0089c04a
...
--- snip ---

The application still crashes with plain Wine but that's due to the stupidity
of the vendor.

--- snip ---
00794E5B    PUSH OFFSET 014BF1EC        ; ASCII "UpdateLayeredWindow"
00794E60    CALL 005CBDF0               ; resolve API
00794E65    ADD ESP,4
00794E68    MOV DWORD PTR DS:[161925C],EAX
00794E6D    TEST EAX,EAX
00794E6F    JNE 00794CEE
...
008D9F32    PUSH 2
008D9F34    MOV DWORD PTR SS:[EBP-8C],EDX
008D9F3A    MOV DWORD PTR SS:[EBP-20E0],EAX
008D9F40    XOR EAX,EAX
008D9F42    MOV EDX,DWORD PTR SS:[EBP-24]
008D9F45    PUSH ECX
008D9F46    MOV BYTE PTR SS:[EBP-56],DL
008D9F49    LEA EDX,[EBP-20E4]
008D9F4F    PUSH EAX
008D9F50    MOV DWORD PTR SS:[EBP-80],ESI
008D9F53    LEA ESI,[EBP-84]
008D9F59    MOV BYTE PTR SS:[EBP-55],1
008D9F5D    MOV BYTE PTR SS:[EBP-57],AL
008D9F60    MOV BYTE PTR SS:[EBP-58],AL
008D9F63    PUSH EDX
008D9F64    PUSH DWORD PTR DS:[EDI+0A0]
008D9F6A    PUSH ESI
008D9F6B    LEA EDI,[EBP-8C]
008D9F71    PUSH EDI
008D9F72    PUSH EAX
008D9F73    PUSH DWORD PTR SS:[EBP-20]
008D9F76    CALL DWORD PTR DS:[161925C]  ; UpdateLayeredWindow()
008D9F7C    JMP SHORT 008D9FB0
...
--- snip ---

--- snip ---
...
005CC150    PUSH OFFSET 01494B00          ; ASCII "ntdll"
005CC155    CALL DWORD PTR DS:[<&KERNEL32.GetModuleHandleA>]
005CC15B    TEST EAX,EAX
005CC15D    JE SHORT 005CC176
005CC15F    PUSH OFFSET 01494B08          ; ASCII "wine_get_version"
005CC164    PUSH EAX
005CC165    CALL DWORD PTR DS:[<&KERNEL32.GetProcAddress>]
005CC16B    MOV EDX,1
005CC170    TEST EAX,EAX
005CC172    CMOVNE EAX,EDX
005CC175    RETN
...
--- snip ---

If Wine is detected it doesn't try to dynamically resolve layered windows API
Not all call sites of late-bound layered windows API are checked for NULL 
pointers.
Talk about shooting yourself in the foot...

You need to use Wine-Staging with 'Hide Wine version from applications' option
enabled.

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