From bab1c3614c6d62015cbee6971b1ebe6651c83c69 Mon Sep 17 00:00:00 2001 From: Mininaut <87039532+Mininaut@users.noreply.github.com> Date: Thu, 17 Sep 2026 14:18:04 +0300 Subject: [PATCH] libc: treat negative dynamic printf precision as omitted (#625) --- src/libs/guestPrintf.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/libs/guestPrintf.cpp b/src/libs/guestPrintf.cpp index 0637d653d..afc61624f 100644 --- a/src/libs/guestPrintf.cpp +++ b/src/libs/guestPrintf.cpp @@ -527,7 +527,12 @@ static int kyty_printf_internal(bool sn, char* sn_s, size_t sn_n, const char* fo } else if (*format == '*') { // const int prec = (int)va_arg(va, int); const int prec = VaArg_int(va_list); - precision = prec > 0 ? static_cast(prec) : 0U; + if (prec < 0) { + // A negative dynamic precision is treated as omitted. + flags &= ~FLAGS_PRECISION; + } else { + precision = static_cast(prec); + } format++; } }