[Bug 53032] winedevice.exe segfaults on exit when built by GCC >=12.0 and -march=pentium-m
WineHQ Bugzilla
wine-bugs at winehq.org
Wed May 25 06:22:20 CDT 2022
https://bugs.winehq.org/show_bug.cgi?id=53032
--- Comment #17 from Bernhard Übelacker <bernhardu at mailbox.org> ---
I redid the steps inside a Fedore 35 VM, with gcc 11.3.1.
There I can confirm the assembly for SetupCloseLog is equal.
(Except two instructions swapped before the EnterCriticalSection.)
But there the $esp value at the ret instruction is the same as
at SetupCloseLog+0. But still a segfault is observable because
the stack memory holding the return address for the ret instruction
got overwritten here:
(rr) stepi
0xf7b93f10 in __wine_syscall_dispatcher ()
1: x/i $pc
=> 0xf7b93f10 <__wine_syscall_dispatcher+20>: mov %esp,0xc(%ecx)
3: *(void**)0x165ef4c = (void *) 0x7d8c9f9c <DllMain+124>
(rr) bt
#0 0xf7b93f10 in __wine_syscall_dispatcher ()
#1 0x7b087541 in CloseHandle ()
#2 0x7d8b9b6f in SetupCloseLog ()
#3 0x7d8c9f9c in DllMain ()
#4 0x7bc55216 in call_dll_entry_point ()
#5 0x7bc59ae1 in MODULE_InitDLL ()
#6 0x7bc5a07f in process_detach ()
...
(rr) stepi
0xf7b93f13 in __wine_syscall_dispatcher ()
1: x/i $pc
=> 0xf7b93f13 <__wine_syscall_dispatcher+23>: mov %cs,0x10(%ecx)
3: *(void**)0x165ef4c = (void *) 0x165eeec
@Artem:
If you build with MinGW cross compilers, which versions do you have installed?
@All:
Is a MinGW-less build still considered fully supported?
--
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