libc: treat negative dynamic printf precision as omitted (#625)

This commit is contained in:
Mininaut
2026-09-17 14:18:04 +03:00
committed by GitHub
parent de1545e19a
commit bab1c3614c
+6 -1
View File
@@ -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<unsigned int>(prec) : 0U;
if (prec < 0) {
// A negative dynamic precision is treated as omitted.
flags &= ~FLAGS_PRECISION;
} else {
precision = static_cast<unsigned int>(prec);
}
format++;
}
}