[Bug 50738] Guild Wars 2 launcher can't login

WineHQ Bugzilla wine-bugs at winehq.org
Tue Mar 23 13:53:15 CDT 2021


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

Paul Gofman <pgofman at codeweavers.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |pgofman at codeweavers.com

--- Comment #6 from Paul Gofman <pgofman at codeweavers.com> ---
I've tested the issue.

The effect of the patch is just tweaking the stack layout. I could reproduce
the issue on top of the last good commit by just allocating a bit more data on
stack in wine_syscall_dispatcher() without any other changes from the blamed
commit. However, there is no stack overflow, and allocating even more memory on
stack in wine_syscall_dispatcher() fixes the issue again. It appears to be the
use of the memory on stack below the stack pointer which goes fine when the
memory there hasn't been overwritten and break things when it had. I could also
reproduce the issue by clearing some amount of stack below the stack pointer at
syscall dispatcher exit and ended up finding the exact offset below the stack
writing to which breaks things.

I discovered that problematic memory address is passed to ws2_32.ConnectEx() as
the initial data send buffer. Looks like on Windows it supposed to copy the
data before returning from the function which is not necessarily the case in
Wine currently. So when the game passes the on stack buffer to ConnectEx and
then leaves, the consistency of data being sent are at the mercy of that stack
part to be untouched (which by chance happened to be the case before the blamed
commit).

This patch on top of current master is fixing the issue for me:
https://source.winehq.org/patches/data/202349

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