git: 2ce4f021827a - stable/14 - libc/stdio: Increase BUF in vfprintf.c and vfwprintf.c

From: Warner Losh <imp_at_FreeBSD.org>
Date: Wed, 26 Mar 2025 01:29:05 UTC
The branch stable/14 has been updated by imp:

URL: https://cgit.FreeBSD.org/src/commit/?id=2ce4f021827a718005e44db693ee5aee7ed175b9

commit 2ce4f021827a718005e44db693ee5aee7ed175b9
Author:     Ahmad Khalifa <ahmadkhalifa570@gmail.com>
AuthorDate: 2024-08-31 03:42:04 +0000
Commit:     Warner Losh <imp@FreeBSD.org>
CommitDate: 2025-03-26 01:28:39 +0000

    libc/stdio: Increase BUF in vfprintf.c and vfwprintf.c
    
    With the %b format specifier we need enough space to write a uintmax_t
    in binary.
    
    Reviewed by: imp
    Pull Request: https://github.com/freebsd/freebsd-src/pull/1400
    
    (cherry picked from commit d4f9e326393e3298062a58338e2c94ef6baff8b5)
---
 lib/libc/stdio/vfprintf.c  | 8 ++------
 lib/libc/stdio/vfwprintf.c | 8 ++------
 2 files changed, 4 insertions(+), 12 deletions(-)

diff --git a/lib/libc/stdio/vfprintf.c b/lib/libc/stdio/vfprintf.c
index 72178c31aa94..6a1ce394a6cd 100644
--- a/lib/libc/stdio/vfprintf.c
+++ b/lib/libc/stdio/vfprintf.c
@@ -294,13 +294,9 @@ vfprintf(FILE * __restrict fp, const char * __restrict fmt0, va_list ap)
 /*
  * The size of the buffer we use as scratch space for integer
  * conversions, among other things.  We need enough space to
- * write a uintmax_t in octal (plus one byte).
+ * write a uintmax_t in binary.
  */
-#if UINTMAX_MAX <= UINT64_MAX
-#define	BUF	32
-#else
-#error "BUF must be large enough to format a uintmax_t"
-#endif
+#define BUF	(sizeof(uintmax_t) * CHAR_BIT)
 
 /*
  * Non-MT-safe version
diff --git a/lib/libc/stdio/vfwprintf.c b/lib/libc/stdio/vfwprintf.c
index b606eec0d9a4..67b366439618 100644
--- a/lib/libc/stdio/vfwprintf.c
+++ b/lib/libc/stdio/vfwprintf.c
@@ -374,13 +374,9 @@ vfwprintf(FILE * __restrict fp, const wchar_t * __restrict fmt0, va_list ap)
 /*
  * The size of the buffer we use as scratch space for integer
  * conversions, among other things.  We need enough space to
- * write a uintmax_t in octal (plus one byte).
+ * write a uintmax_t in binary.
  */
-#if UINTMAX_MAX <= UINT64_MAX
-#define	BUF	32
-#else
-#error "BUF must be large enough to format a uintmax_t"
-#endif
+#define BUF	(sizeof(uintmax_t) * CHAR_BIT)
 
 /*
  * Non-MT-safe version