summaryrefslogtreecommitdiffstats
path: root/Configure
diff options
context:
space:
mode:
authorAlexandros Roussos <thealexroussos@gmail.com>2021-12-20 19:14:57 +0100
committerPauli <pauli@openssl.org>2021-12-23 02:31:33 +0100
commita595e3286ae9f033c56452967b3add2145f9085f (patch)
treee523008c44e6e87448f47fc1dc87e751a2d48b62 /Configure
parentnamemap: handle a NULL return when looking for a non-legacy cipher/MD (diff)
downloadopenssl-a595e3286ae9f033c56452967b3add2145f9085f.tar.xz
openssl-a595e3286ae9f033c56452967b3add2145f9085f.zip
Fix Configure variable spill
* Evaluating code-refs in Configure can sometimes set the default variable `$_` * Prevent spillage influencing the target property by using named variable in loop CLA: trivial Fixes gh-17321 Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/17322)
Diffstat (limited to 'Configure')
-rwxr-xr-xConfigure22
1 files changed, 11 insertions, 11 deletions
diff --git a/Configure b/Configure
index f48b7ab075..bf6c568a4c 100755
--- a/Configure
+++ b/Configure
@@ -3169,25 +3169,25 @@ sub resolve_config {
}
}
- foreach (sort keys %all_keys) {
- my $previous = $combined_inheritance{$_};
+ foreach my $key (sort keys %all_keys) {
+ my $previous = $combined_inheritance{$key};
# Current target doesn't have a value for the current key?
# Assign it the default combiner, the rest of this loop body
# will handle it just like any other coderef.
- if (!exists $table{$target}->{$_}) {
- $table{$target}->{$_} = $default_combiner;
+ if (!exists $table{$target}->{$key}) {
+ $table{$target}->{$key} = $default_combiner;
}
- $table{$target}->{$_} = process_values($table{$target}->{$_},
- $combined_inheritance{$_},
- $target, $_);
- unless(defined($table{$target}->{$_})) {
- delete $table{$target}->{$_};
+ $table{$target}->{$key} = process_values($table{$target}->{$key},
+ $combined_inheritance{$key},
+ $target, $key);
+ unless(defined($table{$target}->{$key})) {
+ delete $table{$target}->{$key};
}
# if ($extra_checks &&
-# $previous && !($add_called || $previous ~~ $table{$target}->{$_})) {
-# warn "$_ got replaced in $target\n";
+# $previous && !($add_called || $previous ~~ $table{$target}->{$key})) {
+# warn "$key got replaced in $target\n";
# }
}