https://bugs.winehq.org/show_bug.cgi?id=53581
Bug ID: 53581 Summary: Construction Set Extender crash on post wine after commit 0d0f2067f89545539ab3ae0ccd802239a2dce98e Product: Wine Version: 7.15 Hardware: x86-64 URL: https://www.nexusmods.com/oblivion/mods/36370/ OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: lorenzofer@live.it Regression SHA1: 0d0f2067f89545539ab3ae0ccd802239a2dce98e Distribution: ArchLinux
Hi. In the current master (post commit 0d0f2067f89545539ab3ae0ccd802239a2dce98e) the Construction Set Extender regressed again after the first regression that happened in wine 7.5.
The old behaviour was an assertion error that terminate the application: Assertion failed: Data != ActiveComboBoxes.cend(), file Y:\CSE\Construction-Set-Extender\UIManager.cpp, line 623
The new behaviour is a crash that happen before the previous error. [CSE] 0x7BC57666 ==> strlen+0x6 in ntdll (0x00CBF378) [CSE] 0x7BC505B6 ==> RtlCreateUnicodeStringFromAsciiz+0x26 in ntdll (0x00CBF3A8) [CSE] 0x6ED5E27A ==> WIN_CreateWindowEx+0xBAA in user32 (0x00CBF4C8) [CSE] 0x6ED5F26D ==> CreateWindowExA+0x168 in user32 (0x00CBF758) [CSE] 0x6ED25119 ==> DIALOG_CreateIndirect+0xBD9 in user32 (0x00CBFA38) [CSE] 0x6ED268F8 ==> CreateDialogParamA+0x78 in user32 (0x00CBFA78)
This block Bug #52779
Regression test result: 0d0f2067f89545539ab3ae0ccd802239a2dce98e is the first bad commit commit 0d0f2067f89545539ab3ae0ccd802239a2dce98e Author: Jacek Caban jacek@codeweavers.com Date: Sun Aug 14 23:24:04 2022 +0200
user32: Pass window name as UNICODE_STRING to NtUserCreateWindowEx.
dlls/user32/win.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-)
https://bugs.winehq.org/show_bug.cgi?id=53581
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |user32 Summary|Construction Set Extender |Construction Set Extender |crash on post wine after |crashes |commit | |0d0f2067f89545539ab3ae0ccd8 | |02239a2dce98e |
https://bugs.winehq.org/show_bug.cgi?id=53581
Zeb Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jacek@codeweavers.com, | |z.figura12@gmail.com Keywords| |regression
https://bugs.winehq.org/show_bug.cgi?id=53581
--- Comment #1 from Jactry Zeng jactry92@gmail.com --- Hi,
Could you try out the hack that Jacek had in bug 53566?
https://bugs.winehq.org/show_bug.cgi?id=53581
--- Comment #2 from Lorenzo Ferrillo lorenzofer@live.it --- the hack fix the issue
https://bugs.winehq.org/show_bug.cgi?id=53581
--- Comment #3 from Gijs Vermeulen gijsvrm@gmail.com --- Was this also fixed by https://gitlab.winehq.org/wine/wine/-/commit/0739aa610cc073beb0cf32dbaf8c2a8a83aa1ecd?
https://bugs.winehq.org/show_bug.cgi?id=53581
--- Comment #4 from Lorenzo Ferrillo lorenzofer@live.it --- The crash is fixed, however now the initial screen image is blank. Not sure if related or another regression
https://bugs.winehq.org/show_bug.cgi?id=53581
--- Comment #5 from Lorenzo Ferrillo lorenzofer@live.it --- 0739aa610cc073beb0cf32dbaf8c2a8a83aa1ecd fix the crash but introduce the blank inital dialog issue, while the previous commit with the hack works fully. The commit render the hack useless.
https://bugs.winehq.org/show_bug.cgi?id=53581
--- Comment #6 from Lorenzo Ferrillo lorenzofer@live.it --- Created attachment 73022 --> https://bugs.winehq.org/attachment.cgi?id=73022 Recreate Resource Integer from special resource string window name
I found the issue. Basically the CS (it happens with the standard CS too I discovered) use the comctl32 static dialog. The dialog have the possibility to use the resource integer to load icons and bitmaps. Before the initial commit adding Unicode strings in Win_CreateWindowEx and after with the hack, the integer was passed unmutated.
The affecting commit instead change this to a special string. I understood this is the correct behaviour (I don't understand however if the special string is the same in windows too). However this special string isn't recognized as a resource string or a resource integer to functions that are aware of resources (in this case LoadImageW).
The patch recreate the Resource integer from the special string, and pass it to the relevant function.
This is how commit 2e9c40d50acbbbb915488fdc70e70c4cc1d205bb did to the User32 static control (they basically seems to share a very similar code), so I believe this may be correct. I will try to check tests and to upstream tomorrow.
https://bugs.winehq.org/show_bug.cgi?id=53581
Lorenzo Ferrillo lorenzofer@live.it changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |c1db36686c7adb1f117e2aeecbd | |024949fc1e6ae Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED
--- Comment #7 from Lorenzo Ferrillo lorenzofer@live.it --- c1db36686c7adb1f117e2aeecbd024949fc1e6ae solve all the issues
https://bugs.winehq.org/show_bug.cgi?id=53581
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #8 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 7.17.