From 8ce4a6c91f52785c9ae8992eb4be18a8ab286027 Mon Sep 17 00:00:00 2001 From: Jonas Nick Date: Fri, 9 Dec 2022 22:31:15 +0000 Subject: [PATCH] benchmarks: fix bench_scalar_split scalar_split_lambda requires that the input pointer is different to both output pointers. Without this fix, the internal benchmarks crash when compiled with -DVERIFY. This was introduced in commit 362bb25608dbcd724a07dd5170c4ebe081c3dd84 (which requires configuring with --enable-endomorphism to exhibit the crash). --- src/bench_internal.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/bench_internal.c b/src/bench_internal.c index 2224058f64..e7600877fc 100644 --- a/src/bench_internal.c +++ b/src/bench_internal.c @@ -110,10 +110,11 @@ void bench_scalar_mul(void* arg, int iters) { void bench_scalar_split(void* arg, int iters) { int i, j = 0; bench_inv *data = (bench_inv*)arg; + secp256k1_scalar tmp; for (i = 0; i < iters; i++) { - secp256k1_scalar_split_lambda(&data->scalar[0], &data->scalar[1], &data->scalar[0]); - j += secp256k1_scalar_add(&data->scalar[0], &data->scalar[0], &data->scalar[1]); + secp256k1_scalar_split_lambda(&tmp, &data->scalar[1], &data->scalar[0]); + j += secp256k1_scalar_add(&data->scalar[0], &tmp, &data->scalar[1]); } CHECK(j <= iters); }