[Bug 15338] setup_exception_record stack overflow when running wineboot

wine-bugs at winehq.org wine-bugs at winehq.org
Fri Sep 26 12:27:11 CDT 2008


http://bugs.winehq.org/show_bug.cgi?id=15338


Arno Schuring <aelschuring at hotmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|regression                  |




--- Comment #8 from Arno Schuring <aelschuring at hotmail.com>  2008-09-26 12:27:10 ---
ok, I've gotten further and I do not believe this is a regression in Wine.
Arguably, it's still a bug because the exception handler seems to be tripping
over itself, until it runs out of stack space.

I've built several old versions from git, with both gcc-4.1 and gcc-4.2. The
results are consistent between different versions of gcc, and between all wine
versions tested. I have found that this only appears when I'm using the ati
X.org driver, and does not appear when I switch to fglrx. Other factors (WM,
sound system) do not appear to have an effect.

My results:
0.9.50 and 0.9.52 have no wineboot executable, so I have used wineprefix to
populate a new prefix. Both give several backtraces but I'm having a hard time
taking them serious. The last function call in Wine listed is
NtSetInformationKey, in ntdll/reg.c. But this is a stub that only logs a
message and returns, and yet it still triggers a page fault. I'll attach a wpc
log, as I think it's still the same error, but the stack trace seems tainted.

0.9.60 does have a wineboot executable, and it faults in the same way as 1.1.5
(but only when I'm using the ati driver). The following is a snippet from a gdb
backtrace on wineboot (args /usr/lib/wine/wineboot.exe.so -u). Note that the
end of the stack trace looks a lot like the one from 0.9.52 (but it lists
NtTerminateProcess instead of NtSetInformationKey):

What I think is happening, is that libGL does a function call to the X.org
driver. The ati driver gives an unexpected response, and libGL causes a
segfault. This segfault is then sent to the signal handler of wine, and that
causes another segfault, ad nauseam.

Program received signal SIGSEGV, Segmentation fault.
0xb7f09b9d in ?? () from /lib/ld-linux.so.2
(gdb) bt
#0  0xb7f09b9d in ?? () from /lib/ld-linux.so.2
#1  0xb7c35cb4 in ?? () from /lib/tls/i686/cmov/libdl.so.2
#2  0xb7f045c6 in ?? () from /lib/ld-linux.so.2
#3  0xb7c362bc in ?? () from /lib/tls/i686/cmov/libdl.so.2
#4  0xb7c35cea in dlclose () from /lib/tls/i686/cmov/libdl.so.2
#5  0x7e68d7bd in ?? () from /usr/lib/libGL.so.1
#6  0x7e66d84a in ?? () from /usr/lib/libGL.so.1
#7  0x7e66f924 in ?? () from /usr/lib/libGL.so.1
#8  0x7e668ba4 in ?? () from /usr/lib/libGL.so.1
#9  0x7e6ab9bc in ?? () from /usr/lib/libGL.so.1
#10 0xb7f04fcf in ?? () from /lib/ld-linux.so.2
#11 0xb7c67084 in exit () from /lib/tls/i686/cmov/libc.so.6
#12 0x7bc51e50 in NtTerminateProcess () from /usr/bin/../lib/wine/ntdll.dll.so
#13 0x7b87462f in ExitProcess () from /usr/bin/../lib/wine/kernel32.dll.so
#14 0x7fd195aa in ?? () from
/tmp/test/dosdevices/z:/usr/lib/wine/wineboot.exe.so
#15 0x7b877b37 in ?? () from /usr/bin/../lib/wine/kernel32.dll.so
#16 0xb7dc59d7 in wine_switch_to_stack () from /usr/bin/../lib/libwine.so.1
(gdb) c
Continuing.

Program received signal SIGSEGV, Segmentation fault.
0x7eab66d0 in ?? ()
(gdb) bt
#0  0x7eab66d0 in ?? ()
#1  0x7bc3b929 in __regs_RtlRaiseException () from
/usr/bin/../lib/wine/ntdll.dll.so
#2  0x7bc65bec in ?? () from /usr/bin/../lib/wine/ntdll.dll.so
#3  0xdeadbabe in ?? ()
#4  0xb7c35cb4 in ?? () from /lib/tls/i686/cmov/libdl.so.2
#5  0xb7f045c6 in ?? () from /lib/ld-linux.so.2
#6  0xb7c362bc in ?? () from /lib/tls/i686/cmov/libdl.so.2
#7  0xb7c35cea in dlclose () from /lib/tls/i686/cmov/libdl.so.2
[...]


-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
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