Oops, there was a mistake here. Fortunately a harmless one.

> @@ -1633,24 +1633,155 @@ MAX_ROOM_NEEDED (const arguments *ap, size_t 
> arg_index, FCHAR_T conversion,
>    switch (conversion)
>      {
>      case 'd': case 'i': case 'u':
> -      if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT)
> -        tmp_length =
> -          (unsigned int) (sizeof (unsigned long long) * CHAR_BIT
> -                          * 0.30103 /* binary -> decimal */
> -                         )
> -          + 1; /* turn floor into ceil */
> -      else if (type == TYPE_LONGINT || type == TYPE_ULONGINT)
> -        tmp_length =
> -          (unsigned int) (sizeof (unsigned long) * CHAR_BIT
> -                          * 0.30103 /* binary -> decimal */
> -                         )
> -          + 1; /* turn floor into ceil */
> -      else
> -        tmp_length =
> -          (unsigned int) (sizeof (unsigned int) * CHAR_BIT
> -                          * 0.30103 /* binary -> decimal */
> -                         )
> -          + 1; /* turn floor into ceil */
> +      switch (type)
> +        {
> +        default:
> +          tmp_length =
> +            (unsigned int) (sizeof (unsigned int) * CHAR_BIT
> +                            * 0.30103 /* binary -> decimal */
> +                           )
> +            + 1; /* turn floor into ceil */
> +        case TYPE_LONGINT:
> +          tmp_length =
> +            (unsigned int) (sizeof (long int) * CHAR_BIT
> +                            * 0.30103 /* binary -> decimal */
> +                           )
> +            + 1; /* turn floor into ceil */
> +          break;


2023-04-03  Bruno Haible  <br...@clisp.org>

        vasnprintf-posix: Fix harmless mistake (regression 2023-03-24).
        Found by Coverity.
        * lib/vasnprintf.c (MAX_ROOM_NEEDED): Insert 'break;' statement.

diff --git a/lib/vasnprintf.c b/lib/vasnprintf.c
index 111d898a94..6eb056d0e9 100644
--- a/lib/vasnprintf.c
+++ b/lib/vasnprintf.c
@@ -1641,6 +1641,7 @@ MAX_ROOM_NEEDED (const arguments *ap, size_t arg_index, 
FCHAR_T conversion,
                             * 0.30103 /* binary -> decimal */
                            )
             + 1; /* turn floor into ceil */
+          break;
         case TYPE_LONGINT:
           tmp_length =
             (unsigned int) (sizeof (long int) * CHAR_BIT




Reply via email to