From b0f307ec3be65afb038730c808cb3ec4dea0503e Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sun, 26 Jan 2025 22:15:50 -0800 Subject: [PATCH] Fix unlikely eassert failure in invalid_radix_integer * src/lread.c (invalid_radix_integer): Simplify by using sprintf with a big-enough buffer. (cherry picked from commit a5c47258ffe6d037e3e3c3665ca82a18661cc82c) --- src/lread.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lread.c b/src/lread.c index e5d1ba0e6bb..de1b0ae2d06 100644 --- a/src/lread.c +++ b/src/lread.c @@ -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); } -- 2.39.5