Fix unlikely eassert failure in invalid_radix_integer

* src/lread.c (invalid_radix_integer):
Simplify by using sprintf with a big-enough buffer.
This commit is contained in:
Paul Eggert 2025-01-26 22:15:50 -08:00
parent f809302fe5
commit a5c47258ff

View 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);
}