[libvirt] [PATCH v2 1/2] host-validate: Be more careful when checking for cgroup support

Andrea Bolognani abologna at redhat.com
Tue Apr 5 15:57:49 UTC 2016


On Tue, 2016-04-05 at 17:26 +0200, Ján Tomko wrote:
> > +         * Since multiple cgroups can be part of the same line and some cgroup
> > +         * names can appear as part of other cgroup names (eg. 'cpu' is a
> > +         * prefix for both 'cpuacct' and 'cpuset'), it's not enough to simply
> > +         * check whether the cgroup name is present somewhere inside the file
> 
> Also, they could be present in the path.

Right. I'll clarify that.

> > +         */
> > +
> > +        /* Look for the first colon.
> > +         * The part we're interested in starts right after it */
> > +        if (!(start = strchr(line, ':'))) {
>> > +            VIR_FREE(line);
> >              continue;
> 
> This pattern keeps repeating.
> 
> How about calling VIR_FREE the first thing in the loop and moving the
> getline call right after it?

Actually, after reading getline(3), I realized the leak was
never there in the first place.

The first time getline() is called, it is passed a NULL pointer
for the buffer and 0 for the length, which instructs it to
allocate an appropriately-sized buffer itself.

Subsequent calls reuse the same buffer, growing it as needed.

So we only really need a single VIR_FREE() call, right after
the loop - exactly where it was before.

Will post a respin shortly.

Cheers.

-- 
Andrea Bolognani
Software Engineer - Virtualization Team




More information about the libvir-list mailing list