[Bug 37389] 64-bit Raptor Chess app v98u3f5 crashes on startup (64-bit Java SE 6 update 24 JVM violates Windows 64-bit ABI, stack pointer (RSP) must be 16-byte aligned when making a call to Win64 API)

WineHQ Bugzilla wine-bugs at winehq.org
Fri Feb 5 04:24:47 CST 2021


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

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|Multiple 64-bit Java based  |64-bit Raptor Chess app
                   |installers crash on startup |v98u3f5 crashes on startup
                   |(64-bit Java 6u21-6u34 JVM  |(64-bit Java SE 6 update 24
                   |with broken mixed mode      |JVM violates Windows 64-bit
                   |execution)(64-bit Raptor    |ABI, stack pointer (RSP)
                   |Chess app v98u3f5, 64-bit   |must be 16-byte aligned
                   |Coverity 6.6)               |when making a call to Win64
                   |                            |API)
                URL|https://raptor-chess-interf |https://web.archive.org/web
                   |ace.googlecode.com/files/Ra |/20150911154207/http://rapt
                   |ptor98u3f5_w64.exe          |or-chess-interface.googleco
                   |                            |de.com/files/Raptor98u3f5_w
                   |                            |64.exe
          Component|-unknown                    |ntdll
             Status|NEW                         |RESOLVED
         Resolution|---                         |DUPLICATE

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

while revisiting / re-analysing old issues I've figured out that this is
actually a dupe of bug 27680 ("Multiple 64-bit applications crash on startup
(violation of the Windows 64-bit ABI, stack pointer (RSP) must be 16-byte
aligned when making a call to Win64 API)").

64-bit Java JRE releases between 6u21..6u34 are affected (broken) and belong to
that hall of shame in bug 27680 ;-)

The workaround of using JVM interpreted mode ('-Xint' parameter) just takes a
different code path, avoiding the broken code.

---

Stable links to reproduce via Internet Archive:

https://web.archive.org/web/20150911154207/http://raptor-chess-interface.googlecode.com/files/Raptor98u3f5_w64.exe

The installer fails now because the private hosting site for JRE 1.6.0.43
(64-bit) is broken.

Alternative payload snapshot via Internet Archive:

https://web.archive.org/web/20210204205621/https://dev.openclinica.com/oc/software/OpenClinica-3.1/windows/jdk-6u24-windows-x64.exe

More JRE version snapshots from the affected range:

https://web.archive.org/web/20210204211940/http://mirror.thekeelecentre.com/pub/java/archive/jre-6u33-windows-x64.exe

To work around Raptor Chess app installer JRE 1.6 requirement:

--- snip ---
002f:Call KERNEL32.lstrcpynA(0040a380,0042db00 "SOFTWARE\\JavaSoft\\Java
Runtime Environment",00000400) ret=00405a1f
002f:Ret  KERNEL32.lstrcpynA() retval=0040a380 ret=00405a1f
002f:Call advapi32.RegOpenKeyExA(80000002,0040a380 "SOFTWARE\\JavaSoft\\Java
Runtime Environment",00000000,00020019,0065e648) ret=00402b2e
002f:Ret  advapi32.RegOpenKeyExA() retval=00000002 ret=00402b2e
002f:Call KERNEL32.lstrcpynA(0040a780,0042db00 "CurrentVersion",00000400)
ret=00405a1f
002f:Ret  KERNEL32.lstrcpynA() retval=0040a780 ret=00405a1f
002f:Call KERNEL32.lstrcpynA(0042db00,0042f800 "",00000400) ret=00405a1f
002f:Ret  KERNEL32.lstrcpynA() retval=0042db00 ret=00405a1f
002f:Call KERNEL32.lstrlenA(0042db00 "") ret=00405c32
002f:Ret  KERNEL32.lstrlenA() retval=00000000 ret=00405c32
002f:Call KERNEL32.lstrcpynA(0040a380,0042db00 "",00000400) ret=00405a1f
002f:Ret  KERNEL32.lstrcpynA() retval=0040a380 ret=00405a1f
002f:Call KERNEL32.lstrcpynA(0040a780,0042db00 "1.6",00000400) ret=00405a1f
002f:Ret  KERNEL32.lstrcpynA() retval=0040a780 ret=00405a1f
002f:Call KERNEL32.lstrcmpiA(0040a380 "",0040a780 "1.6") ret=004019d2
002f:Ret  KERNEL32.lstrcmpiA() retval=ffffffff ret=004019d2
002f:Call KERNEL32.lstrcpynA(0040a780,0042db00 "Raptor uses Java 1.6, it will
now be downloaded and installed",00000400) ret=00405a1f
002f:Ret  KERNEL32.lstrcpynA() retval=0040a780 ret=00405a1f
002f:Call user32.MessageBoxIndirectA(004091d8) ret=0040532e
--- snip ---

Install one of the broken 64-bit JRE releases and add the registry key as
follows prior running the installer:

--- snip ---
$ wine reg add "HKLM\\Software\\JavaSoft\\Java Runtime Environment" \
               /v CurrentVersion /d "1.6" /f
--- snip ---

>From my comment #2, to reproduce:

--- snip ---
$ pwd
/home/focht/wine64/drive_c/Program Files (x86)/Raptor

$ wine "c:\\program files\\Java\\jre6\\bin\\java.exe" \
     -verbose:jni -verbose:class -Xcheck:jni \
     -jar "C:\\Program Files (x86)\\Raptor\\updater.jar"
--- snip ---

It was fixed by commit
https://source.winehq.org/git/wine.git/commitdiff/dccb57dfd9c668eff5e672def93405be8a3303bd
("include: Force stack alignment on x86_64.").

I will keep two custom Wine builds to quickly test for broken 64-bit apps if I
still find some of those.

Wine build before the workaround for broken win64 apps:

$ wine --version
wine-1.9.2-133-g71f018cba51

Wine build with workaround for broken win64 apps:

$ wine --version
wine-1.9.2-134-gdccb57dfd9c

Regards

*** This bug has been marked as a duplicate of bug 27680 ***

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