From: Richard Levitte Date: Tue, 30 Aug 2016 16:41:00 +0000 (+0200) Subject: The Perl interpreter might be in a path with spaces, so maybe quote it X-Git-Tag: OpenSSL_1_1_0a~97 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=bbf007488749581fbb1a2998279cb9cafc93791f;p=openssl 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 (cherry picked from commit f879d5ff38d3c2283db968ea57c7a3207cc05889) --- diff --git a/Configure b/Configure index b88f6aad42..133136077d 100755 --- a/Configure +++ b/Configure @@ -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 =