[Bug 9628] msiexec command line parsing incorrect

wine-bugs at winehq.org wine-bugs at winehq.org
Fri Nov 23 17:15:09 CST 2007


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





--- Comment #5 from Darragh Bailey <felix at compsoc.nuigalway.ie>  2007-11-23 17:15:08 ---

I had to increase the string length limit on the function dbgstr_wn to be able
to see what CreateProcessW was actually passing as the command line when
calling msiexec.

trace:process:CreateProcessW app (null) cmdline
L"\"c:\\windows\\system32\\msiexec.exe\"  /I
C:\\windows\\temp\\IXP002.TMP\\XLVIEW.MSI CDCACHE=\"2\" LAUNCHEDFROMSETUP=\"1\"
SETUPEXEPATH=\"C:\\windows\\temp\\IXP002.TMP\\\" SETUPEXENAME=\"SETUP.EXE\"  
/lpiwaeo \"C:\\windows\\temp\\Microsoft Office Excel Viewer 2003
Setup(0003)_Task(0001).txt\" CDCACHE=\"0\"
DWSETUPLOGFILE=\"C:\\windows\\temp\\Microsoft Office Excel Viewer 2003
Setup(0003).txt\" DWMSILOGFILE=\"C:\\windows\\temp\\Microsoft Office Excel
Viewer 2003 Setup(0003)_Task(0001).txt\""


The problem appear to the PROPERTY SETUPEXEPATH

SETUPEXEPATH=\"C:\\windows\\temp\\IXP002.TMP\\\"

this actually appears to get to msiexec as

SETUPEXEPATH="C:\\windows\\temp\\IXP002.TMP\"

which causes the command line to msiexec to appear internally as the first set
of trace output in comment 4.

If it is passed instead as 
SETUPEXEPATH="C:\\windows\\temp\\IXP002.TMP\\"

then the command line appears internally from msiexec's point of view as

trace:msiexec:main bug 9628: argv[0] = "programs/msiexec/msiexec.exe.so"
trace:msiexec:main bug 9628: argv[1] = "/I"
trace:msiexec:main bug 9628: argv[2] = "C:\windows\temp\IXP002.TMP\XLVIEW.MSI"
trace:msiexec:main bug 9628: argv[3] = "CDCACHE=2"
trace:msiexec:main bug 9628: argv[4] = "LAUNCHEDFROMSETUP=1"
trace:msiexec:main bug 9628: argv[5] =
"SETUPEXEPATH=C:\windows\temp\IXP002.TMP\"
trace:msiexec:main bug 9628: argv[6] = "SETUPEXENAME=SETUP.EXE"
trace:msiexec:main bug 9628: argv[7] = "/lpiwaeo"
trace:msiexec:main bug 9628: argv[8] = "C:\windows\temp\Microsoft Office Excel
Viewer 2003 Setup\(0003\)_Task\(0001\).txt"
trace:msiexec:main bug 9628: argv[9] = "CDCACHE=0"
trace:msiexec:main bug 9628: argv[10] =
"DWSETUPLOGFILE=C:\windows\temp\Microsoft Office Excel Viewer 2003
Setup\(0003\).txt"
trace:msiexec:main bug 9628: argv[11] = "DWMSILOGFILE=C:\windows\temp\Microsoft
Office Excel Viewer 2003 Setup\(0003\)_Task\(0001\).txt"

This certainly looks more correct.

So it looks to me that the original patch was correct and actually highlighted
a bug in the command line processing, where a directory path with a trailing
slash  
enclosed in quotes would get passed through to the target program incorrectly,
thus mucking up the command line arguments being read in by the target program.

Guess that should probably be logged as a separate bug


-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list