mirror of
https://github.com/openssl/openssl.git
synced 2024-12-09 05:51:54 +08:00
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)
This commit is contained in:
parent
7a85dd46e0
commit
a595e3286a
22
Configure
22
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";
|
||||
# }
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user