util/perl/OpenSSL/config.pm: remove expand() and use eval
authorRichard Levitte <levitte@openssl.org>
Tue, 3 Mar 2020 13:31:35 +0000 (14:31 +0100)
committerRichard Levitte <levitte@openssl.org>
Sun, 28 Jun 2020 16:34:36 +0000 (18:34 +0200)
The strings we expand contain other variable references than just
${MACHINE}.  Instead of having to remember what to expand, we simply
evaluate the string as a, well, string.

Reviewed-by: Tim Hudson <tjh@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/11230)

util/perl/OpenSSL/config.pm

index 53a77b3..3536f12 100755 (executable)
@@ -193,13 +193,6 @@ sub maybe_abort {
     }
 }
 
-# Expand variable references in a string.
-sub expand {
-    my $var = shift;
-    $var =~ s/\$\{MACHINE\}/${MACHINE}/;
-    return $var;
-}
-
 # Look for ISC/SCO with its unique uname program
 sub is_sco_uname {
     open UNAME, "uname -X 2>/dev/null|" or return '';
@@ -248,7 +241,7 @@ sub guess_system {
     my $REL = is_sco_uname();
     if ( $REL ne "" ) {
         my $result = get_sco_type($REL);
-        return expand($result) if $result ne '';
+        return eval "\"$result\"" if $result ne '';
     }
 
     # Now pattern-match
@@ -259,7 +252,7 @@ sub guess_system {
         # Trailing $ omitted on purpose.
         next if $sys !~ /^$pat/;
         my $result = @$tuple[1];
-        return expand($result);
+        return eval "\"$result\"";
     }
 
     # Complex cases.
@@ -269,7 +262,7 @@ sub guess_system {
         next if $sys !~ /^$pat/;
         my $ref = @$tuple[1];
         my $result = &$ref;
-        return expand($result);
+        return eval "\"$result\"";
     }
 
     # Oh well.