[Bug 35254] New: Freemake Video Converter 4.1 installer complains about running Freemake processes (builtin 'findstr' stub app always returns "match")
wine-bugs at winehq.org
wine-bugs at winehq.org
Fri Dec 27 18:01:57 CST 2013
http://bugs.winehq.org/show_bug.cgi?id=35254
Bug ID: 35254
Summary: Freemake Video Converter 4.1 installer complains about
running Freemake processes (builtin 'findstr' stub app
always returns "match")
Product: Wine
Version: 1.7.9
Hardware: x86
OS: Linux
Status: NEW
Severity: normal
Priority: P2
Component: programs
Assignee: wine-bugs at winehq.org
Reporter: focht at gmx.net
Classification: Unclassified
Hello folks,
continuation of bug 32937
Code of extracted batch file 'CheckRunningInstance.cmd':
--- snip ---
tasklist | findstr "FreemakeAC | FreemakeVD | FreemakeMB | FreemakeVC |
FreemakeYC"
--- snip ---
Relevant part of trace log:
--- snip ---
0052:Call KERNEL32.CreateProcessW(00000000,00995cec
L"\"C:\\windows\\system32\\cmd.exe\" /C
\"\"C:\\users\\focht\\Temp\\is-PQPUK.tmp\\CheckRunningInstance.cmd\"\"",00000000,00000000,00000000,04000000,00000000,00966a5c
L"C:\\users\\focht\\Temp\\is-PQPUK.tmp",0033f9e0,0033f9d0) ret=004ac6a1
...
005c:Call KERNEL32.__wine_kernel_init() ret=7bc5a036
0052:Ret KERNEL32.CreateProcessW() retval=00000001 ret=004ac6a1
...
005c:Call KERNEL32.CreateProcessW(00329964
L"C:\\windows\\system32\\tasklist.EXE",00145f28 L"tasklist
",00000000,00000000,00000001,00000000,00000000,00000000,00329920,00329e24)
ret=7ed031b2
...
005e:Call KERNEL32.__wine_kernel_init() ret=7bc5a036
005c:Ret KERNEL32.CreateProcessW() retval=00000001 ret=7ed031b2
...
005e:Starting process L"C:\\windows\\system32\\tasklist.exe"
(entryproc=0x7edfd7b8)
005e:fixme:tasklist:wmain stub: L"tasklist"
005e:Call KERNEL32.ExitProcess(00000000) ret=7edfd846
...
005c:Ret KERNEL32.WaitForSingleObject() retval=00000000 ret=7ed03270
005c:Call KERNEL32.GetExitCodeProcess(0000004c,7edc7ce0) ret=7ed0328b
005c:Ret KERNEL32.GetExitCodeProcess() retval=00000001 ret=7ed0328b
...
005c:Call KERNEL32.CreateProcessW(00329964
L"C:\\windows\\system32\\findstr.EXE",00145f28 L"findstr \"FreemakeAC |
FreemakeVD | FreemakeMB | FreemakeVC |
FreemakeYC\"",00000000,00000000,00000001,00000000,00000000,00000000,00329920,00329e24)
ret=7ed031b2
...
0060:Call KERNEL32.__wine_kernel_init() ret=7bc5a036
005c:Ret KERNEL32.CreateProcessW() retval=00000001 ret=7ed031b2
...
005c:Call KERNEL32.WaitForSingleObject(0000004c,ffffffff) ret=7ed03270
...
0060:Starting process L"C:\\windows\\system32\\findstr.exe"
(entryproc=0x7edfd7b8)
0060:fixme:findstr:wmain stub: L"findstr" L"FreemakeAC | FreemakeVD |
FreemakeMB | FreemakeVC | FreemakeYC"
0060:Call KERNEL32.ExitProcess(00000000) ret=7edfd846
...
005c:Ret KERNEL32.WaitForSingleObject() retval=00000000 ret=7ed03270
005c:Call KERNEL32.GetExitCodeProcess(0000004c,7edc7ce0) ret=7ed0328b
005c:Ret KERNEL32.GetExitCodeProcess() retval=00000001 ret=7ed0328b
...
005c:Call KERNEL32.ExitProcess(00000000) ret=7ed07262
...
0052:Ret user32.MsgWaitForMultipleObjects() retval=00000000 ret=004af027
0052:Call KERNEL32.GetExitCodeProcess(0000007c,0033fb8c) ret=004af038
0052:Ret KERNEL32.GetExitCodeProcess() retval=00000001 ret=004af038
...
0052:Call user32.MessageBoxW(00010196,00644fec L"Setup has detected that one or
more of Freemake programs are currently running.\r\n\r\nPlease close all
instances of Freemake running programs now, then click OK to continue, or
Cancel to exit.",0065b51c L"Setup",00000021) ret=0047c446
...
--- snip ---
Wine builtin 'tasklist' and 'findstr' are stub apps that return exit code 0 -
regardless what was passed in (because they do nothing as of now).
This gets propagated through cmd.exe exit code to caller (GetExitCodeProcess).
cmd.exe -> 0
findstr.exe -> 0
tasklist.exe -> 0
The problem is that Windows 'findstr' uses inverted logic.
Match -> exit code = 0
No match -> exit code = 1
Wine 'findstr' always returns 0 hence the installer takes this a process list
match and complains.
Source:
http://source.winehq.org/git/wine.git/blob/3ce21826c87434e9aea6fad5e62bd37b3bd99730:/programs/findstr/main.c#l23
--- snip ---
23 int wmain(int argc, WCHAR *argv[])
24 {
25 int i;
26
27 WINE_FIXME("stub:");
28 for (i = 0; i < argc; i++)
29 WINE_FIXME(" %s", wine_dbgstr_w(argv[i]));
30 WINE_FIXME("\n");
31
32 return 0;
33 }
--- snip ---
It shouldn't be too hard to implement a minimal string/pattern matching.
Another way is to change the default behaviour to "no match" (return 1).
I'm not sure if it breaks apps that currently depend on stub "match" behaviour.
$ sha1sum FreemakeVideoConverterSetup.exe
20cbd93a0041da2eeef6350f6426407df660858d FreemakeVideoConverterSetup.exe
$ du -sh FreemakeVideoConverterSetup.exe
1.3M FreemakeVideoConverterSetup.exe
$ wine --version
wine-1.7.9-209-gb231b4b
Regards
--
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