[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