From 966da449232766ad41b9be4f263fcccd4500bd22 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Niels=20M=C3=B6ller?= <nisse@lysator.liu.se>
Date: Mon, 15 May 2023 20:01:14 +0200
Subject: [PATCH] Fix mpz_init/mpz_clear usage in eccdata.c.

---
 ChangeLog | 6 ++++++
 eccdata.c | 5 ++---
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 67acec44..507e0438 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2023-05-15  Niels Möller  <nisse@lysator.liu.se>
+
+	* eccdata.c (output_bignum_redc): Add missing mpz_clear, reported
+	by Noah Watkins.
+	(output_digits): Delete a gratuitous mpz_init.
+
 2023-05-14  Niels Möller  <nisse@lysator.liu.se>
 
 	* Released nettle-3.9.
diff --git a/eccdata.c b/eccdata.c
index e0726e8d..3f8e3f13 100644
--- a/eccdata.c
+++ b/eccdata.c
@@ -1074,7 +1074,7 @@ output_digits (const mpz_t x,
   unsigned i;
   const char *suffix;
 
-  mpz_init (t);
+  mpz_init_set (t, x);
   mpz_init (mask);
   mpz_init (limb);
 
@@ -1083,8 +1083,6 @@ output_digits (const mpz_t x,
 
   suffix = bits_per_limb > 32 ? "ULL" : "UL";
 
-  mpz_init_set (t, x);
-
   for (i = 0; i < size; i++)
     {
       if ( (i % 8) == 0)
@@ -1120,6 +1118,7 @@ output_bignum_redc (const char *name, const mpz_t x, const mpz_t p,
   mpz_mul_2exp (t, x, size * bits_per_limb);
   mpz_mod (t, t, p);
   output_bignum (name, t, size, bits_per_limb);
+  mpz_clear (t);
 }
 
 static void
-- 
GitLab