diff options
author | Alexandros Roussos <thealexroussos@gmail.com> | 2021-12-20 19:14:57 +0100 |
---|---|---|
committer | Pauli <pauli@openssl.org> | 2021-12-23 02:31:33 +0100 |
commit | a595e3286ae9f033c56452967b3add2145f9085f (patch) | |
tree | e523008c44e6e87448f47fc1dc87e751a2d48b62 /Configure | |
parent | namemap: handle a NULL return when looking for a non-legacy cipher/MD (diff) | |
download | openssl-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-x | Configure | 22 |
1 files changed, 11 insertions, 11 deletions
@@ -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"; # } } |