From e3ff089249a31765c23faaf9d8019b7889dd0c58 Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Thu, 3 Sep 2015 19:41:40 +0200 Subject: [PATCH] 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 --- test/testlib/OpenSSL/Test.pm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/test/testlib/OpenSSL/Test.pm b/test/testlib/OpenSSL/Test.pm index 83d7acc8b7..f378351f65 100644 --- a/test/testlib/OpenSSL/Test.pm +++ b/test/testlib/OpenSSL/Test.pm @@ -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; -- 2.25.1