]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
basenc: Don't trigger undefined behaviour in mini-gmp
authorBruno Haible <bruno@clisp.org>
Tue, 12 Aug 2025 00:25:41 +0000 (02:25 +0200)
committerPaul Eggert <eggert@cs.ucla.edu>
Tue, 12 Aug 2025 01:07:20 +0000 (18:07 -0700)
* src/basenc.c (base58_encode): Avoid calling mpz_import on an empty
limb sequence.

src/basenc.c

index dbe3b388f3b45fc2aadfbddf6feb10245a67fd65..84789e2de913ea83500b9d58c9ad1e89191fe59d 100644 (file)
@@ -1175,10 +1175,12 @@ base58_encode (char const* data, size_t data_len,
   /* Use GMP to convert from base 256 to base 58.  */
   mpz_t num;
   mpz_init (num);
-  mpz_import (num, data_len - zeros, 1, 1, 0, 0, data + zeros);
   if (data_len - zeros)
-    for (p = mpz_get_str (p, 58, num); *p; p++)
-      *p = gmp_to_base58[to_uchar (*p)];
+    {
+      mpz_import (num, data_len - zeros, 1, 1, 0, 0, data + zeros);
+      for (p = mpz_get_str (p, 58, num); *p; p++)
+        *p = gmp_to_base58[to_uchar (*p)];
+    }
   mpz_clear (num);
 
   *outlen = p - out;