https://bugs.winehq.org/show_bug.cgi?id=56940
Bug ID: 56940 Summary: vs_community.exe halts:"The application cannot find one of its required files, possibly because it was unable to create it in the folder." (regression) Product: Wine Version: 9.12 Hardware: x86-64 OS: Linux Status: NEW Keywords: download Severity: normal Priority: P2 Component: shell32 Assignee: [email protected] Reporter: [email protected] Regression SHA1: 0bad544aab9e2c9ee93bbabac0386e02c58a39c0 Distribution: Debian
Note: I installed .net48 beforehand
It throws this error, whereas before the regression you can enter the initial menu correctly.
0bad544aab9e2c9ee93bbabac0386e02c58a39c0 is the first bad commit commit 0bad544aab9e2c9ee93bbabac0386e02c58a39c0 Author: Yuxuan Shui [email protected] Date: Mon May 20 09:51:07 2024 +0100
shell32: Fix ShellExecute for non-filespec paths.
dlls/shell32/shlexec.c | 60 +++++++++++++++++++++++++++++++++++++++++++++++------------- dlls/shell32/tests/shlexec.c | 13 ++++++++++++- 2 files changed, 59 insertions(+), 14 deletions(-)
https://bugs.winehq.org/show_bug.cgi?id=56940
Louis Lenders [email protected] changed:
What |Removed |Added ---------------------------------------------------------------------------- URL| |https://aka.ms/vs/16/releas | |e/vs_community.exe
--- Comment #1 from Louis Lenders [email protected] --- added dl link
https://bugs.winehq.org/show_bug.cgi?id=56940
--- Comment #2 from Louis Lenders [email protected] --- Hi, i cannot add the author of patch in the CC field, because email-address seems unknown(?). Any one know correct email-address?
https://bugs.winehq.org/show_bug.cgi?id=56940
Fabian Maurer [email protected] changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |[email protected]
--- Comment #3 from Fabian Maurer [email protected] --- Maybe they don't have a bugzilla account?
Maybe we should ping them on the MR? https://gitlab.winehq.org/wine/wine/-/merge_requests/5692
https://bugs.winehq.org/show_bug.cgi?id=56940
--- Comment #4 from Louis Lenders [email protected] --- (In reply to Fabian Maurer from comment #3)
Maybe they don't have a bugzilla account?
Maybe we should ping them on the MR? https://gitlab.winehq.org/wine/wine/-/merge_requests/5692
Thanks, I dropped a note there. Also paste some debug output below, might or might not help to see why it fails ;)
0024:trace:exec:SHELL_execute mask=0x00000540 hwnd=00000000 verb=L"runas" file=L"vs_bootstrapper_d15\vs_setup_bootstrapper.exe " parm=L" --env "_SFX_CAB_EXE_PACKAGE:Z:\home\louis\ramdisk\vs_Community.exe _SFX_CAB_EXE_ORIGINALWORKINGDIR:Z:\home\louis\sda3\wine"" dir=L"C:\users\louis\Temp\3252d0f1a378a23b87c1ac\" show=0x00000005 class=not used 0024:fixme:exec:SHELL_execute flags ignored: 0x00000100 0024:trace:exec:ShellExecute_FromContextMenu L"vs_bootstrapper_d15\vs_setup_bootstrapper.exe " 0024:trace:exec:ShellExecute_GetClassKey ext = L"" 0024:trace:exec:ShellExecute_GetClassKey class = (null) 0024:trace:exec:SHELL_execute execute:L"vs_bootstrapper_d15\vs_setup_bootstrapper.exe ",L" --env "_SFX_CAB_EXE_PACKAGE:Z:\home\louis\ramdisk\vs_Community.exe _SFX_CAB_EXE_ORIGINALWORKINGDIR:Z:\home\louis\sda3\wine"",L"C:\users\louis\Temp\3252d0f1a378a23b87c1ac\" 0024:trace:exec:SHELL_FindExecutable L"vs_bootstrapper_d15\vs_setup_bootstrapper.exe " 0024:trace:exec:SHELL_FindExecutable ASDF L"C:\users\louis\Temp\3252d0f1a378a23b87c1ac\" 0024:trace:shell:PathFileExistsDefExtW (L"C:\users\louis\Temp\3252d0f1a378a23b87c1ac\vs_bootstrapper_d15\vs_setup_bootstrapper.exe ",191) 0024:trace:shell:PathFileExistsDefExtW (L"vs_bootstrapper_d15\vs_setup_bootstrapper.exe ",191) 0024:trace:exec:SHELL_FindExecutable Returning SE_ERR_FNF 0024:trace:shell:PathIsDirectoryW (L"vs_bootstrapper_d15\vs_setup_bootstrapper.exe ") 0024:trace:exec:SHELL_execute retval 2
https://bugs.winehq.org/show_bug.cgi?id=56940
Gijs Vermeulen [email protected] changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression CC| |[email protected] Summary|vs_community.exe halts:"The |vs_community.exe halts:"The |application cannot find one |application cannot find one |of its required files, |of its required files, |possibly because it was |possibly because it was |unable to create it in the |unable to create it in the |folder." (regression) |folder."
--- Comment #5 from Gijs Vermeulen [email protected] --- Adding 'regression' keyword and CC'ing patch author.
https://bugs.winehq.org/show_bug.cgi?id=56940
--- Comment #6 from Louis Lenders [email protected] --- I tried follow code path in current shell32, and maybe the troubles is caused by the trailing space in the filepath: "...vs_setup_bootstrapper.exe "
(PathFileExistsDefExtW (L"vs_bootstrapper_d15\vs_setup_bootstrapper.exe ",191)
If I strip that space manually away with a hack, the installer works again. But that needs some testing first for I guess PathFileExistsDefExtW
https://bugs.winehq.org/show_bug.cgi?id=56940
--- Comment #7 from Louis Lenders [email protected] --- Created attachment 76768 --> https://bugs.winehq.org/attachment.cgi?id=76768 test executable
Attached a small test executable
On windows this will start regedit, on wine it does nothing...
After long search, if I'm correct, the problem is in ShellExecuteW. Source for simple test:
#include <windows.h> #include <shellapi.h>
int __cdecl main(int argc, CHAR *arg[]) {
ShellExecuteW( NULL, L"open", L"regedit.exe ", NULL, NULL, SW_SHOWNORMAL );
}
Wine's ShellExecuteW doesn't like the trailing space, but windows seems to happily execute the app.
I'll see if I can fixup a patch
https://bugs.winehq.org/show_bug.cgi?id=56940
--- Comment #8 from Louis Lenders [email protected] --- Created attachment 76791 --> https://bugs.winehq.org/attachment.cgi?id=76791 patch
Attached patch (+tests) fixes this bug.
Will send later to wine-gitlab for review.
https://bugs.winehq.org/show_bug.cgi?id=56940
--- Comment #9 from Fabian Maurer [email protected] --- FWIW, it only seems to be normal space characters that are allowed. tab, newline, linefeed, non-breaking space and zero width space don't work.