From bbf007488749581fbb1a2998279cb9cafc93791f Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Tue, 30 Aug 2016 18:41:00 +0200 Subject: [PATCH] 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) --- Configure | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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 = -- 2.25.1