On 9/27/18 10:13 AM, Pavel Hrdina wrote: > This reverts commit 1602aa28f820ada66f707cef3e536e8572fbda1e. > > There is no need to call virCgroupRemove() nor virCgroupFree() if > virCgroupEnableMissingControllers() fails because it will not modify > 'group' at all. The cleanup is done in virCgroupMakeGroup(). > > Signed-off-by: Pavel Hrdina <phrdina@xxxxxxxxxx> > --- > src/util/vircgroup.c | 25 ++++++++++--------------- > 1 file changed, 10 insertions(+), 15 deletions(-) > For this patch, Reviewed-by: John Ferlan <jferlan@xxxxxxxxxx> However, of course this tickle's Coverity (that's what happens when someone makes a change in code). Anyway, it seems calling virCgroupSetOwner with a NULL cgroup as could happen in virLXCCgroupCreate if virCgroupNewMachine returns 0 and cgroup == NULL, will cause a problem. Yes, this existing and no I'm not knowledgeable (nor is Coverity for that matter) to know if having def->idmap.uidmap is "related". John It's like an onion, peel one layer and we find something else. > diff --git a/src/util/vircgroup.c b/src/util/vircgroup.c > index f90906e4ad..548c873da8 100644 > --- a/src/util/vircgroup.c > +++ b/src/util/vircgroup.c > @@ -1055,7 +1055,6 @@ virCgroupNewMachineSystemd(const char *name, > int rv; > virCgroupPtr init; > VIR_AUTOFREE(char *) path = NULL; > - virErrorPtr saved = NULL; > > VIR_DEBUG("Trying to setup machine '%s' via systemd", name); > if ((rv = virSystemdCreateMachine(name, > @@ -1088,24 +1087,20 @@ virCgroupNewMachineSystemd(const char *name, > > if (virCgroupEnableMissingControllers(path, pidleader, > controllers, group) < 0) { > - goto error; > + return -1; > } > > - if (virCgroupAddProcess(*group, pidleader) < 0) > - goto error; > + if (virCgroupAddProcess(*group, pidleader) < 0) { > + virErrorPtr saved = virSaveLastError(); > + virCgroupRemove(*group); > + virCgroupFree(group); > + if (saved) { > + virSetError(saved); > + virFreeError(saved); > + } > + } > > return 0; > - > - error: > - saved = virSaveLastError(); > - virCgroupRemove(*group); > - virCgroupFree(group); > - if (saved) { > - virSetError(saved); > - virFreeError(saved); > - } > - > - return -1; > } > > > -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list