https://bugs.winehq.org/show_bug.cgi?id=44003
Bug ID: 44003 Summary: Origin: BF3WebHelper.exe crashes because injection of igo32.dll fails. Product: Wine-staging Version: 2.20 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: bernhardu@mailbox.org CC: erich.e.hoover@wine-staging.com, michael@fds-team.de, sebastian@fds-team.de Distribution: ---
Created attachment 59662 --> https://bugs.winehq.org/attachment.cgi?id=59662 Standalone demonstration of the issue similar to what Origin does.
When starting a game from Origin a crash dialog for BF3WebHelper.exe is shown. Shift+right click - "Debug" seems to get another thread further, so it can successfully then still execute Firefox.exe.
Used a self built wine-2.20 with the whole staging patch set applied.
Tried to get an idea of what happens: - Origin calculates the entry point for LoadLibrary using the kernel32 fake dll and the base address of its own process. - CreateProcess with suspended flag is called for BF3WebHelper.exe - Memory for the to be loaded dll is reserved and filled in the new process ("...\igo32.dll"). - A second thread in the new process is created by CreateRemoteThread using the calculated entry point for kernel32.fake.LoadLibrary above. - This thread crashes because it looks like in the in memory kernel32 module is something different/uninitialized at the used entry point.
With +BF3WebHelper.exe:all crash does not happen. (But is still not executing LoadLibrary and seems not to crash by "accident".)
Attached is a demonstration of what happens.
https://bugs.winehq.org/show_bug.cgi?id=44003
--- Comment #1 from Bernhard Übelacker bernhardu@mailbox.org --- Created attachment 59664 --> https://bugs.winehq.org/attachment.cgi?id=59664 Test on top of staging patch set demonstrating the issue. Works on native.
https://bugs.winehq.org/show_bug.cgi?id=44003
--- Comment #2 from Bernhard Übelacker bernhardu@mailbox.org --- And of course a workaround is to disable the Origin In Game setting.
https://bugs.winehq.org/show_bug.cgi?id=44003
tokktokk fdsfgs@krutt.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |fdsfgs@krutt.org
https://bugs.winehq.org/show_bug.cgi?id=44003
Anya animegirl@stronzi.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |animegirl@stronzi.org
https://bugs.winehq.org/show_bug.cgi?id=44003
dereklesho52@Gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dereklesho52@Gmail.com
--- Comment #3 from dereklesho52@Gmail.com --- Created attachment 66991 --> https://bugs.winehq.org/attachment.cgi?id=66991 Desribed patch
https://bugs.winehq.org/show_bug.cgi?id=44003
--- Comment #4 from dereklesho52@Gmail.com --- While the solution which is in progress is to transition kernel32 to a PE dll, I did write a hacky patch which solves this in some configurations 2 months ago. TannisRoot asked me to share it so others could improve it if they like. Note that the patch depends on the fakedlls staging patchset.
https://bugs.winehq.org/show_bug.cgi?id=44003
Alexandr Oleynikov sashok.olen@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |sashok.olen@gmail.com
--- Comment #5 from Alexandr Oleynikov sashok.olen@gmail.com --- This patch used to work, but it has a very annoying and critical issue unfortunately - on my machine with mingw, only the first build seems to work, subsequent ones dont, and on my gcc-only building VM with Ubuntu 18.04 the produced builds don't work at all.
https://bugs.winehq.org/show_bug.cgi?id=44003
Bernhard Übelacker bernhardu@mailbox.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |ABANDONED
--- Comment #6 from Bernhard Übelacker bernhardu@mailbox.org --- I tried retesting this. Unfortunately my 2017 test executable does not crash against the winehq 2.20 staging packages, and not against current 8.17 staging.
As I found also EA has replaced Origin by "EA App" I am going to resolve this bug as abandoned.
https://bugs.winehq.org/show_bug.cgi?id=44003
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #7 from Austin English austinenglish@gmail.com --- Closing.