Hooks: avoid problems with backslashes in paths
Calling sh -c with a script path containing backslashes may fail since the shell may try to process them as escape characters. Instead of calling sh.exe -c 'C:\path\script "$@"' 'C:\path\script' other args call sh.exe -c '$0 "$@"' 'C:\path\script' other args which avoids this escape processing. Note that this is not specific to Windows. If the path or the script name contain backslashes, this also occurs on Unix. Bug: 558577 Change-Id: I47d63db6f8644f956c55c42b07dbcad7d7f305aa Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
This commit is contained in:
parent
4cb80f897f
commit
2323d7a1ef
|
@ -261,7 +261,7 @@ public ProcessBuilder runInShell(String cmd, String[] args) {
|
||||||
List<String> argv = new ArrayList<>(4 + args.length);
|
List<String> argv = new ArrayList<>(4 + args.length);
|
||||||
argv.add("sh"); //$NON-NLS-1$
|
argv.add("sh"); //$NON-NLS-1$
|
||||||
argv.add("-c"); //$NON-NLS-1$
|
argv.add("-c"); //$NON-NLS-1$
|
||||||
argv.add(cmd + " \"$@\""); //$NON-NLS-1$
|
argv.add("$0 \"$@\""); //$NON-NLS-1$
|
||||||
argv.add(cmd);
|
argv.add(cmd);
|
||||||
argv.addAll(Arrays.asList(args));
|
argv.addAll(Arrays.asList(args));
|
||||||
ProcessBuilder proc = new ProcessBuilder();
|
ProcessBuilder proc = new ProcessBuilder();
|
||||||
|
|
|
@ -149,7 +149,7 @@ public ProcessBuilder runInShell(String cmd, String[] args) {
|
||||||
List<String> argv = new ArrayList<>(4 + args.length);
|
List<String> argv = new ArrayList<>(4 + args.length);
|
||||||
argv.add("sh.exe"); //$NON-NLS-1$
|
argv.add("sh.exe"); //$NON-NLS-1$
|
||||||
argv.add("-c"); //$NON-NLS-1$
|
argv.add("-c"); //$NON-NLS-1$
|
||||||
argv.add(cmd + " \"$@\""); //$NON-NLS-1$
|
argv.add("$0 \"$@\""); //$NON-NLS-1$
|
||||||
argv.add(cmd);
|
argv.add(cmd);
|
||||||
argv.addAll(Arrays.asList(args));
|
argv.addAll(Arrays.asList(args));
|
||||||
ProcessBuilder proc = new ProcessBuilder();
|
ProcessBuilder proc = new ProcessBuilder();
|
||||||
|
|
Loading…
Reference in New Issue