diff --git a/src/stdio/printf/format_usual.c b/src/stdio/printf/format_usual.c index 7c8eb64..a414150 100644 --- a/src/stdio/printf/format_usual.c +++ b/src/stdio/printf/format_usual.c @@ -59,6 +59,8 @@ void __printf_format_s( size_t len = 0; uint32_t precision = opt->precision ? opt->precision : (-1); while(s[len] && len < precision) len++; + /* Cap precision to real value for __printf_compute_geometry() */ + opt->precision = len; struct __printf_geometry g = { .prefix = 0, .sign = 0, .content = len,