[libc++] Use proper shell escaping in the executors

This commit is contained in:
Louis Dionne 2020-04-17 16:43:35 -04:00
parent 701af684f6
commit f8452ddfcc
2 changed files with 7 additions and 3 deletions

View File

@ -14,6 +14,7 @@ program's error code.
import argparse
import os
import pipes
import shutil
import subprocess
import sys
@ -57,8 +58,9 @@ def main():
else:
shutil.copy2(dep, args.execdir)
# Run the executable with the given environment in the execution directory.
return subprocess.call(' '.join(remaining), cwd=args.execdir, env=env, shell=True)
# Run the command line with the given environment in the execution directory.
commandLine = (pipes.quote(x) for x in remaining)
return subprocess.call(' '.join(commandLine), cwd=args.execdir, env=env, shell=True)
finally:
shutil.rmtree(args.execdir)

View File

@ -15,6 +15,7 @@ conformance test suite.
import argparse
import os
import pipes
import posixpath
import subprocess
import sys
@ -97,10 +98,11 @@ def main():
# host by transforming the path of test-executables to their path in the
# temporary directory, where we know they have been copied when we handled
# test dependencies above.
commandLine = (pathOnRemote(x) if isTestExe(x) else x for x in commandLine)
remoteCommands += [
'cd {}'.format(tmp),
'export {}'.format(' '.join(args.env)),
' '.join(pathOnRemote(x) if isTestExe(x) else x for x in commandLine)
' '.join(pipes.quote(x) for x in commandLine)
]
# Finally, SSH to the remote host and execute all the commands.