[PATCH v2] stdio-common: Restore while (1) loop in printf_positional

Florian Weimer fweimer@redhat.com
Mon Aug 10 14:24:18 GMT 2026


The old condition is misleading because it is never evaluated.
Switch back to the original approach before the printf buffer
rewrite.

---
 stdio-common/vfprintf-internal.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/stdio-common/vfprintf-internal.c b/stdio-common/vfprintf-internal.c
index 14ac0d9762..38a55443eb 100644
--- a/stdio-common/vfprintf-internal.c
+++ b/stdio-common/vfprintf-internal.c
@@ -1335,7 +1335,7 @@ printf_positional (struct Xprintf_buffer * buf, const CHAR_T *format,
 	}
 
       /* Process format specifiers.  */
-      do
+      while (1)
 	{
 # ifdef COMPILE_WPRINTF
 #  define CHECK_SPEC(spec) ((spec) <= UCHAR_MAX)
@@ -1415,7 +1415,6 @@ printf_positional (struct Xprintf_buffer * buf, const CHAR_T *format,
 	  }
 	  break;
 	}
-      while (Xprintf_buffer_has_failed (buf));
 
       /* Write the following constant string.  */
       Xprintf_buffer_write (buf,

base-commit: 9d7d6480880064cb5219aa267894ffabd0c2b20c



More information about the Libc-alpha mailing list