+2025-04-11 Bruno Haible <bruno@clisp.org>
+
+ vasnprintf: Fix memory size bound for %g with grouping and precision.
+ * lib/vasnprintf.c (MAX_ROOM_NEEDED): For %g, consider also the size of
+ the thousands separators.
+
2025-04-10 Bruno Haible <bruno@clisp.org>
vasnprintf: Fix handling of # flag in %b, %B directives.
tmp_length = xsum (tmp_length, 2);
break;
+ case 'e': case 'E':
+ tmp_length =
+ 12; /* sign, decimal point, exponent etc. */
+ tmp_length = xsum (tmp_length, precision);
+ break;
+
case 'f': case 'F':
if (type == TYPE_LONGDOUBLE)
tmp_length =
tmp_length = xsum (tmp_length, precision);
break;
- case 'e': case 'E': case 'g': case 'G':
+ case 'g': case 'G':
tmp_length =
12; /* sign, decimal point, exponent etc. */
- tmp_length = xsum (tmp_length, precision);
+ tmp_length = xsum (tmp_length,
+ precision
+ * 2 /* estimate for FLAG_GROUP */
+ );
break;
case 'a': case 'A':