Commit bbf00748 authored by Richard Levitte's avatar Richard Levitte Committed by Richard Levitte
Browse files

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: default avatarRich Salz <rsalz@openssl.org>
(cherry picked from commit f879d5ff)
parent 5410190c
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -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 =