[Bug 14786] mkv2vob halts with the message "error getting mkv info"

wine-bugs at winehq.org wine-bugs at winehq.org
Tue Dec 30 16:35:11 CST 2008


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


Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |focht at gmx.net




--- Comment #5 from Anastasius Focht <focht at gmx.net>  2008-12-30 16:35:09 ---
Hello,

that VB app uses Windows Scripting Host objects to carry out some tasks - hence
you need to install WSH.

Prerequisites: winetricks vb6run wsh56

It seems that Wine's cmd.exe command line args processing can't cope with
double-double quote braindamage, e.g. double quote enclosing double quoted
paths (containing spaces).

Spawned process command line from WSH shell object "exec" method:

--- snip ---
..
0046:trace:process:CreateProcessW app (null) cmdline
L"C:\\windows\\system32\\cmd.exe /D /C \"\"C:\\Program
Files\\mkv2vob\\tools\\mkvinfo.exe\" \"C:\\Program
Files\\mkv2vob\\mewmew-vorbis-ssa.mkv\" >
\"C:\\windows\\temp\\mewmew-vorbis-ssa.dos.txt\"\""
0046:trace:process:find_exe_file looking for L"C:\\windows\\system32\\cmd.exe"
0046:trace:process:find_exe_file Trying native exe
L"C:\\windows\\system32\\cmd.exe"
0046:trace:process:CreateProcessW starting L"C:\\windows\\system32\\cmd.exe" as
Win32 binary (0x10000000-0x10042000)
0018:trace:process:init_current_directory starting in L"C:\\Program
Files\\mkv2vob\\" 0x1c
0018:trace:process:__wine_kernel_init starting process
name=L"C:\\windows\\system32\\cmd.exe"
argv[0]=L"C:\\windows\\system32\\cmd.exe"
0046:trace:process:CreateProcessW started process pid 0047 tid 0018 
..
--- snip ---

There is a double quote pair enclosing the whole /c command string and one
around each path which contains whitespace (like "program files").

Due to use of C runtime argv[], Wine's cmd.exe gets it wrong:

--- snip ---
0018:trace:cmd:wmain Command line parm: 'L"C:\\windows\\system32\\cmd.exe"'
0018:trace:cmd:wmain Command line parm: 'L"/D"'
0018:trace:cmd:wmain Command line parm: 'L"/C"'
0018:trace:cmd:wmain /c command line: 'L"C:\\Program
\"Files\\mkv2vob\\tools\\mkvinfo.exe C:\\Program\"
\"Files\\mkv2vob\\mewmew-vorbis-ssa.mkv >
C:\\windows\\temp\\mewmew-vorbis-ssa.dos.txt\""'
0018:trace:cmd:WCMD_DumpCommands Parsed line:
0018:trace:cmd:WCMD_DumpCommands L"0012FE00 0 00 00000000 C:\\Program
\"Files\\mkv2vob\\tools\\mkvinfo.exe C:\\Program\"
\"Files\\mkv2vob\\mewmew-vorbis-ssa.mkv >
C:\\windows\\temp\\mewmew-vorbis-ssa.dos.txt\" Redir:"
0018:trace:cmd:WCMD_process_commands Executing command: 'L"C:\\Program
\"Files\\mkv2vob\\tools\\mkvinfo.exe C:\\Program\"
\"Files\\mkv2vob\\mewmew-vorbis-ssa.mkv >
C:\\windows\\temp\\mewmew-vorbis-ssa.dos.txt\""'
0018:trace:cmd:WCMD_execute command on entry:L"C:\\Program
\"Files\\mkv2vob\\tools\\mkvinfo.exe C:\\Program\"
\"Files\\mkv2vob\\mewmew-vorbis-ssa.mkv >
C:\\windows\\temp\\mewmew-vorbis-ssa.dos.txt\"" (0x33f5a0), with
'(null)'='(null)'
0018:trace:cmd:WCMD_execute Command: 'L"C:\\Program
\"Files\\mkv2vob\\tools\\mkvinfo.exe C:\\Program\"
\"Files\\mkv2vob\\mewmew-vorbis-ssa.mkv >
C:\\windows\\temp\\mewmew-vorbis-ssa.dos.txt\""'
0018:trace:cmd:WCMD_execute param1: L":\\Program", param2:
L"Files\\mkv2vob\\tools\\mkvinfo.exe C:\\Program"
0018:trace:cmd:WCMD_run_program Searching in 'L"C:\\"' for 'L"Program"'
0018:trace:cmd:WCMD_run_program ASSUMING INTERNAL
0018:trace:process:CreateProcessW app (null) cmdline L"C:\\Program
\"Files\\mkv2vob\\tools\\mkvinfo.exe C:\\Program\"
\"Files\\mkv2vob\\mewmew-vorbis-ssa.mkv >
C:\\windows\\temp\\mewmew-vorbis-ssa.dos.txt\"" 
--- snip ---

Quickfix for the user: install and run the program from paths not containing
spaces (same applies to output directory).

A solution might be to use GetCommandLineW(), manually applying
quoting/dequoting rules and not use C runtime for (initial) argv processing.

Regards


-- 
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