]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix unlikely eassert failure in invalid_radix_integer
authorPaul Eggert <eggert@cs.ucla.edu>
Mon, 27 Jan 2025 06:15:50 +0000 (22:15 -0800)
committerEshel Yaron <me@eshelyaron.com>
Thu, 30 Jan 2025 18:07:14 +0000 (19:07 +0100)
* src/lread.c (invalid_radix_integer):
Simplify by using sprintf with a big-enough buffer.

(cherry picked from commit a5c47258ffe6d037e3e3c3665ca82a18661cc82c)

src/lread.c

index e5d1ba0e6bb949b9724012943cb4e74e82cfed9a..de1b0ae2d06de7a6948aa80936b1e6fd73db1634 100644 (file)
@@ -3109,9 +3109,9 @@ digit_to_number (int character, int base)
 static void
 invalid_radix_integer (EMACS_INT radix, Lisp_Object readcharfun)
 {
-  char buf[64];
-  int n = snprintf (buf, sizeof buf, "integer, radix %"pI"d", radix);
-  eassert (n < sizeof buf);
+  static char const format[] = "integer, radix %"pI"d";
+  char buf[sizeof format - sizeof "%"pI"d" + INT_BUFSIZE_BOUND (radix)];
+  sprintf (buf, format, radix);
   invalid_syntax (buf, readcharfun);
 }