Small fix in OpenSSL::Test

Be careful when shifting in a function argument, you end up changing
the caller's value.  Instead, when it is an array, make a shallow copy
and shift in that instead.

Reviewed-by: Rich Salz <rsalz@openssl.org>
This commit is contained in:
Richard Levitte 2015-09-03 19:41:40 +02:00
parent 5beb63c41e
commit e3ff089249

View File

@ -695,8 +695,10 @@ sub __build_cmd {
my $num = shift;
my $path_builder = shift;
my $cmd = __fixup_cmd($path_builder->(shift @{$_[0]}));
my @args = @{$_[0]}; shift;
# Make a copy to not destroy the caller's array
my @cmdarray = ( @{$_[0]} ); shift;
my $cmd = __fixup_cmd($path_builder->(shift @cmdarray));
my @args = @cmdarray;
my %opts = @_;
return () if !$cmd;