[libvirt] [PATCH] util: fix a bug found in sorting cache monitor results

Daniel P. Berrangé berrange at redhat.com
Mon May 13 10:25:50 UTC 2019


On Mon, May 13, 2019 at 12:05:47PM +0200, Michal Privoznik wrote:
> On 5/10/19 5:21 PM, Wang Huaqiang wrote:
> > From: Huaqiang <huaqiang.wang at intel.com>
> > 
> > The qsort element is a pointer of virResctrlMonitorStats, and
> > the comparing function's arguments have a type of pointer of
> > virResctrlMonitorStatsPtr.
> > 
> > Signed-off-by: Huaqiang <huaqiang.wang at intel.com>
> > ---
> >   src/util/virresctrl.c | 6 +++---
> >   1 file changed, 3 insertions(+), 3 deletions(-)
> > 
> > diff --git a/src/util/virresctrl.c b/src/util/virresctrl.c
> > index b845f36..a190977 100644
> > --- a/src/util/virresctrl.c
> > +++ b/src/util/virresctrl.c
> > @@ -2659,8 +2659,8 @@ static int
> >   virResctrlMonitorStatsSorter(const void *a,
> >                                const void *b)
> >   {
> > -    return ((virResctrlMonitorStatsPtr)a)->id
> > -        - ((virResctrlMonitorStatsPtr)b)->id;
> > +    return (*(virResctrlMonitorStatsPtr *)a)->id
> > +        - (*(virResctrlMonitorStatsPtr *)b)->id;
> >   }
> > @@ -2758,7 +2758,7 @@ virResctrlMonitorGetStats(virResctrlMonitorPtr monitor,
> >       /* Sort in id's ascending order */
> >       if (*nstats)
> > -        qsort(*stats, *nstats, sizeof(*stat), virResctrlMonitorStatsSorter);
> > +        qsort(*stats, *nstats, sizeof(stat), virResctrlMonitorStatsSorter);
> 
> Nice catch, but since we're touching this line, how about getting rid of
> @stat completely? I mean, I'd like to change it to sizeof(**stats) because
> that's how big one element is.

Yeah, I'd prefer using  sizeof(**stats) as that is more obviously
correct when comparing args.

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|




More information about the libvir-list mailing list