From 34e6d267fc84505f417418dd265c8e47888a4f1e Mon Sep 17 00:00:00 2001
From: tb <>
Date: Fri, 22 Nov 2024 00:14:36 +0000
Subject: Rename val_sub[] into row[] and move it to the stack

ok djm
---
 src/lib/libcrypto/ec/ec_mult.c | 28 +++++++++++++---------------
 1 file changed, 13 insertions(+), 15 deletions(-)

(limited to 'src/lib')

diff --git a/src/lib/libcrypto/ec/ec_mult.c b/src/lib/libcrypto/ec/ec_mult.c
index 8ef655690e..6f0499c951 100644
--- a/src/lib/libcrypto/ec/ec_mult.c
+++ b/src/lib/libcrypto/ec/ec_mult.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ec_mult.c,v 1.37 2024/11/21 15:03:56 tb Exp $ */
+/* $OpenBSD: ec_mult.c,v 1.38 2024/11/22 00:14:36 tb Exp $ */
 /*
  * Originally written by Bodo Moeller and Nils Larsch for the OpenSSL project.
  */
@@ -229,6 +229,7 @@ ec_wNAF_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *m,
 {
 	const EC_POINT *generator = NULL;
 	EC_POINT *tmp = NULL;
+	EC_POINT **row[2] = { 0 };
 	size_t totalnum;
 	size_t i, j;
 	int k;
@@ -240,8 +241,6 @@ ec_wNAF_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *m,
 	size_t num_val;
 	EC_POINT **val = NULL;	/* precomputation */
 	EC_POINT **v;
-	EC_POINT ***val_sub = NULL;	/* pointers to sub-arrays of 'val' or
-					 * 'pre_comp->points' */
 	int ret = 0;
 
 	if (m == NULL || n == NULL) {
@@ -271,9 +270,8 @@ ec_wNAF_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *m,
 
 	wsize = reallocarray(NULL, totalnum, sizeof wsize[0]);
 	wNAF_len = reallocarray(NULL, totalnum, sizeof wNAF_len[0]);
-	val_sub = reallocarray(NULL, totalnum, sizeof val_sub[0]);
 
-	if (wsize == NULL || wNAF_len == NULL || val_sub == NULL) {
+	if (wsize == NULL || wNAF_len == NULL) {
 		ECerror(ERR_R_MALLOC_FAILURE);
 		goto err;
 	}
@@ -311,7 +309,7 @@ ec_wNAF_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *m,
 	/* allocate points for precomputation */
 	v = val;
 	for (i = 0; i < 2; i++) {
-		val_sub[i] = v;
+		row[i] = v;
 		for (j = 0; j < ((size_t) 1 << (wsize[i] - 1)); j++) {
 			*v = EC_POINT_new(group);
 			if (*v == NULL)
@@ -328,25 +326,25 @@ ec_wNAF_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *m,
 
 	/*
 	 * prepare precomputed values:
-	 *  val_sub[i][0] :=     points[i]
-	 *  val_sub[i][1] := 3 * points[i]
-	 *  val_sub[i][2] := 5 * points[i]
+	 *  row[i][0] :=     points[i]
+	 *  row[i][1] := 3 * points[i]
+	 *  row[i][2] := 5 * points[i]
 	 *  ...
 	 */
 	for (i = 0; i < 2; i++) {
 		if (i < 1) {
-			if (!EC_POINT_copy(val_sub[i][0], point))
+			if (!EC_POINT_copy(row[i][0], point))
 				goto err;
 		} else {
-			if (!EC_POINT_copy(val_sub[i][0], generator))
+			if (!EC_POINT_copy(row[i][0], generator))
 				goto err;
 		}
 
 		if (wsize[i] > 1) {
-			if (!EC_POINT_dbl(group, tmp, val_sub[i][0], ctx))
+			if (!EC_POINT_dbl(group, tmp, row[i][0], ctx))
 				goto err;
 			for (j = 1; j < ((size_t) 1 << (wsize[i] - 1)); j++) {
-				if (!EC_POINT_add(group, val_sub[i][j], val_sub[i][j - 1], tmp, ctx))
+				if (!EC_POINT_add(group, row[i][j], row[i][j - 1], tmp, ctx))
 					goto err;
 			}
 		}
@@ -391,7 +389,7 @@ ec_wNAF_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *m,
 				r_is_inverted = !r_is_inverted;
 			}
 
-			if (!EC_POINT_add(group, r, r, val_sub[i][digit >> 1], ctx))
+			if (!EC_POINT_add(group, r, r, row[i][digit >> 1], ctx))
 				goto err;
 		}
 	}
@@ -420,6 +418,6 @@ ec_wNAF_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *m,
 			EC_POINT_free(*v);
 		free(val);
 	}
-	free(val_sub);
+
 	return ret;
 }
-- 
cgit v1.2.3-55-g6feb