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

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



Wei Liu, on Wed 17 Aug 2016 15:13:27 +0100, wrote:
> 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>

Acked-by: Samuel Thibault <samuel.thibautl@xxxxxxxxxxxx>

> > ---
> >  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
> > 
> 

-- 
Samuel
"2 + 2 = 5 pour d'assez grandes valeurs de 2"

_______________________________________________
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®.