http://bugs.winehq.org/show_bug.cgi?id=58968
Bug ID: 58968 Summary: Fusion360 broken, stack overflow occurs since 10.15 Product: Wine Version: 10.15 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@list.winehq.org Reporter: info@maduranma.com Distribution: ---
There's a generalized issue: https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/issues/602
Autodesk Fusion360 gets stuck at loading modules since 10.15, on 10.14 and older it works fine.
It seems it crashes with a stack overflow:
02f4:fixme:netprofm:cost_manager_GetCost 00007F8F8B992778, 00007F8FE420F740, 0000000000000000 02f4:fixme:thread:NtSetInformationThread ThreadPowerThrottling stub! 0768:fixme:secur32:get_enabled_protocols handle TLS parameters 0664:fixme:shcore:SetCurrentProcessExplicitAppUserModelID L"AutodeskInc.Fusion360": stub 0560:fixme:thread:NtSetInformationThread ThreadPowerThrottling stub! 055c:fixme:wlanapi:WlanEnumInterfaces (0000000000000001, 0000000000000000, 00007F8F8A30D560) semi-stub 0664:err:virtual:virtual_setup_exception stack overflow 4608 bytes addr 0x6fffffc385f5 stack 0x7ffffe0ffe00 (0x7ffffe100000-0x7ffffe101000-0x7ffffe200000)
http://bugs.winehq.org/show_bug.cgi?id=58968
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression
--- Comment #1 from Austin English austinenglish@gmail.com --- Please run a regression test: https://gitlab.winehq.org/wine/wine/-/wikis/Regression-Testing
http://bugs.winehq.org/show_bug.cgi?id=58968
--- Comment #2 from Martín Durán info@maduranma.com --- (In reply to Austin English from comment #1)
Please run a regression test: https://gitlab.winehq.org/wine/wine/-/wikis/Regression-Testing
Okey, that's weird. I ran the regression tests from 10.14 to 10.15 (as since 10.15 it stopped working in theory).
Seems that I was wrong I had to repeat them until 10.16.
The exact commit is: https://gitlab.winehq.org/wine/wine/-/commit/2a2cc34db71a86899b69bf3ee1da527... ``` 2a2cc34db71a86899b69bf3ee1da52793c342019 is the first bad commit commit 2a2cc34db71a86899b69bf3ee1da52793c342019 Author: Nikolay Sivov nsivov@codeweavers.com Date: Fri Sep 19 13:08:41 2025 +0200
dwrite: Use uppercase paths for local file loader keys.
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com
dlls/dwrite/font.c | 8 ++++++-- dlls/dwrite/tests/font.c | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) ```
It looked weird that such a small changed could cause it, so I recompiled it twice without caching on this exact commit and the commit before to confirm.
Thank you and sorry for the late response.
http://bugs.winehq.org/show_bug.cgi?id=58968
Hans Leidekker hans@meelstraat.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |DUPLICATE Status|UNCONFIRMED |RESOLVED
--- Comment #3 from Hans Leidekker hans@meelstraat.net --- (In reply to Martín Durán from comment #2)
The exact commit is: https://gitlab.winehq.org/wine/wine/-/commit/ 2a2cc34db71a86899b69bf3ee1da52793c342019
2a2cc34db71a86899b69bf3ee1da52793c342019 is the first bad commit commit 2a2cc34db71a86899b69bf3ee1da52793c342019 Author: Nikolay Sivov <nsivov@codeweavers.com> Date: Fri Sep 19 13:08:41 2025 +0200 dwrite: Use uppercase paths for local file loader keys. Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com> dlls/dwrite/font.c | 8 ++++++-- dlls/dwrite/tests/font.c | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-)
Thanks, that makes this a duplicate of 58811.
*** This bug has been marked as a duplicate of bug 58811 ***
http://bugs.winehq.org/show_bug.cgi?id=58968
--- Comment #4 from Rafał Mużyło galtgendo@o2.pl --- We might be looking at something close to a compiler bug here, due to a type mismatch.
The way wcsupr is implemented in msvcrt is by calling _wcsupr_s_l with '-1' as size, but the type for size is size_t (unsigned). _wcsupr_s_l doesn't really account for such values...
Just to verify my idea is going in the right direction, try changing that implementation in _wcsupr_l to - let's say '_wcsupr_s_l( str, wcslen(str)+1, locale);' (likely won't be quite correct for NULL str, but otherwise OK...well, unless I messed something up, so caution advised).