[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] mini-os: fix coverity issues in printf.c



On Wed, Aug 17, 2016 at 03:39:59PM +0200, Juergen Gross wrote:
> Fix two issues discovered by coverity.

I would update the commit message to make it contain more information.

Fix two issues discovered by Coverity:

1. properl mark one switch case as fall-through
2. unroll a loop that only executes once

CID: 1369623
CID: 1019001


> 
> Signed-off-by: Juergen Gross <jgross@xxxxxxxx>

Reviewed-by: Wei Liu <wei.liu2@xxxxxxxxxx>

> ---
>  lib/printf.c | 25 +++++++++++--------------
>  1 file changed, 11 insertions(+), 14 deletions(-)
> 
> diff --git a/lib/printf.c b/lib/printf.c
> index ad6a304..f9e9d68 100644
> --- a/lib/printf.c
> +++ b/lib/printf.c
> @@ -379,6 +379,7 @@ reswitch:       switch (ch = (u_char)*fmt++) {
>                                  padc = '0';
>                                  goto reswitch;
>                          }
> +                        /* fallthrough */
>                  case '1': case '2': case '3': case '4':
>                  case '5': case '6': case '7': case '8': case '9':
>                                  for (n = 0;; ++fmt) {
> @@ -966,20 +967,16 @@ literal:
>                                  width = 1;
>                          if (flags & SUPPRESS) {
>                                  size_t sum = 0;
> -                                for (;;) {
> -                                        if ((n = inr) < width) {
> -                                                sum += n;
> -                                                width -= n;
> -                                                inp += n;
> -                                                if (sum == 0)
> -                                                        goto input_failure;
> -                                                break;
> -                                        } else {
> -                                                sum += width;
> -                                                inr -= width;
> -                                                inp += width;
> -                                                break;
> -                                        }
> +                                if ((n = inr) < width) {
> +                                        sum += n;
> +                                        width -= n;
> +                                        inp += n;
> +                                        if (sum == 0)
> +                                                goto input_failure;
> +                                } else {
> +                                        sum += width;
> +                                        inr -= width;
> +                                        inp += width;
>                                  }
>                                  nread += sum;
>                          } else {
> -- 
> 2.6.6
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.