Fix a for loop bug introduced in the concurrency refactor
authortb <tb@openbsd.org>
Mon, 6 Nov 2023 14:50:12 +0000 (14:50 +0000)
committertb <tb@openbsd.org>
Mon, 6 Nov 2023 14:50:12 +0000 (14:50 +0000)
commit9e8c2326bee7b7ae38b9cf63beb74ca03df9dc72
treee0b952a389e311e5e1af12c31a418f1b252376a9
parentadc664b87807589b7ce436e80c6e35a21931fed2
Fix a for loop bug introduced in the concurrency refactor

Due to Go's idiosyncratic semantics of for loops, tests would only run
some of the test groups in the JSON file because by the time the closure
is called, the array index could be changed. For example, on fast 8 core
machines, the CMAC tests would run the last test group with key size 320
eight times rather than each of the eight test groups once.

Make a copy of the pointer before passing it to the closure to avoid this
issue.

Simpler version of my initial fix from jsing
regress/lib/libcrypto/wycheproof/wycheproof.go