diff options
author | Richard Levitte <levitte@openssl.org> | 2016-08-30 18:41:00 +0200 |
---|---|---|
committer | Richard Levitte <richard@levitte.org> | 2016-08-31 16:44:15 +0200 |
commit | bbf007488749581fbb1a2998279cb9cafc93791f (patch) | |
tree | d54257a1c5ae6de225cd9afa089f03eaf57b3627 /Configure | |
parent | 5410190ccbb410b7eb391b9182d2f2eb57e0c6c6 (diff) |
The Perl interpreter might be in a path with spaces, so maybe quote it
Note: some shells do not like the command verb to be quoted, so we avoid
it unless it's actually necessary.
RT#4665
Reviewed-by: Rich Salz <rsalz@openssl.org>
(cherry picked from commit f879d5ff38d3c2283db968ea57c7a3207cc05889)
Diffstat (limited to 'Configure')
-rwxr-xr-x | Configure | 11 |
1 files changed, 10 insertions, 1 deletions
@@ -2398,7 +2398,8 @@ sub run_dofile foreach (@templates) { die "Can't open $_, $!" unless -f $_; } - my $cmd = "$config{perl} \"-I.\" \"-Mconfigdata\" \"$dofile\" -o\"Configure\" \"".join("\" \"",@templates)."\" > \"$out.new\""; + my $perlcmd = (quotify("maybeshell", $config{perl}))[0]; + my $cmd = "$perlcmd \"-I.\" \"-Mconfigdata\" \"$dofile\" -o\"Configure\" \"".join("\" \"",@templates)."\" > \"$out.new\""; #print STDERR "DEBUG[run_dofile]: \$cmd = $cmd\n"; system($cmd); exit 1 if $? != 0; @@ -2558,6 +2559,14 @@ sub quotify { perl => sub { my $x = shift; $x =~ s/([\\\$\@"])/\\$1/g; return '"'.$x.'"'; }, + maybeshell => sub { my $x = shift; + (my $y = $x) =~ s/([\\\"])/\\$1/g; + if ($x ne $y || $x =~ m|\s|) { + return '"'.$y.'"'; + } else { + return $x; + } + }, ); my $for = shift; my $processor = |