shell32: Don't expand environment variables in ShellExecute()'s parameters argument.

This commit is contained in:
Francois Gouget 2012-10-09 00:13:54 +02:00 committed by Alexandre Julliard
parent 40b01c1bfc
commit 0c989fb078
2 changed files with 1 additions and 18 deletions

View File

@ -1740,23 +1740,6 @@ static BOOL SHELL_execute( LPSHELLEXECUTEINFOW sei, SHELL_ExecuteW32 execfunc )
sei_tmp.lpFile = wszApplicationName; sei_tmp.lpFile = wszApplicationName;
} }
if (*sei_tmp.lpParameters)
{
len = ExpandEnvironmentStringsW(sei_tmp.lpParameters, NULL, 0);
if (len > 0)
{
LPWSTR buf;
len++;
buf = HeapAlloc(GetProcessHeap(),0,len*sizeof(WCHAR));
ExpandEnvironmentStringsW(sei_tmp.lpParameters, buf, len);
if (wszParameters != parametersBuffer)
HeapFree(GetProcessHeap(), 0, wszParameters);
wszParameters = buf;
parametersLen = len;
sei_tmp.lpParameters = wszParameters;
}
}
if (*sei_tmp.lpDirectory) if (*sei_tmp.lpDirectory)
{ {
len = ExpandEnvironmentStringsW(sei_tmp.lpDirectory, NULL, 0); len = ExpandEnvironmentStringsW(sei_tmp.lpDirectory, NULL, 0);

View File

@ -1354,7 +1354,7 @@ static const argify_tests_t argify_tests[] =
{"", "\" p\\three pfour\"", "pfive", "", NULL}, 0}}, {"", "\" p\\three pfour\"", "pfive", "", NULL}, 0}},
/* Environment variables are left untouched. */ /* Environment variables are left untouched. */
{"Params23456", "%TMPDIR% %t %c", 0x12, {"Params23456", "%TMPDIR% %t %c", 0,
{" \"%TMPDIR%\" \"%t\" \"%c\" \"\" \"\"", {" \"%TMPDIR%\" \"%t\" \"%c\" \"\" \"\"",
{"", "%TMPDIR%", "%t", "%c", "", "", NULL}, 0}}, {"", "%TMPDIR%", "%t", "%c", "", "", NULL}, 0}},