From e6d3e46bb587ff60e45207897c24c75897aab8c8 Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Wed, 25 Jul 2018 14:48:13 +0200 Subject: [PATCH] lxc: Don't mangle @cfg refs in virLXCProcessBuildControllerCmd The config object is refed but unrefed only on error which leaves refcount unbalanced on successful return. Signed-off-by: Michal Privoznik Reviewed-by: Erik Skultety --- src/lxc/lxc_process.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/lxc/lxc_process.c b/src/lxc/lxc_process.c index 3e44da1aaf..d021a890f7 100644 --- a/src/lxc/lxc_process.c +++ b/src/lxc/lxc_process.c @@ -931,7 +931,7 @@ virLXCProcessBuildControllerCmd(virLXCDriverPtr driver, filterstr = virLogGetFilters(); if (!filterstr) { virReportOOMError(); - goto cleanup; + goto error; } virCommandAddEnvPair(cmd, "LIBVIRT_LOG_FILTERS", filterstr); @@ -943,7 +943,7 @@ virLXCProcessBuildControllerCmd(virLXCDriverPtr driver, outputstr = virLogGetOutputs(); if (!outputstr) { virReportOOMError(); - goto cleanup; + goto error; } virCommandAddEnvPair(cmd, "LIBVIRT_LOG_OUTPUTS", outputstr); @@ -973,7 +973,7 @@ virLXCProcessBuildControllerCmd(virLXCDriverPtr driver, char *tmp = NULL; if (virAsprintf(&tmp, "--share-%s", nsInfoLocal[i]) < 0) - goto cleanup; + goto error; virCommandAddArg(cmd, tmp); virCommandAddArgFormat(cmd, "%d", nsInheritFDs[i]); virCommandPassFD(cmd, nsInheritFDs[i], 0); @@ -999,11 +999,13 @@ virLXCProcessBuildControllerCmd(virLXCDriverPtr driver, * write the live domain status XML with the PID */ virCommandRequireHandshake(cmd); - return cmd; cleanup: - virCommandFree(cmd); virObjectUnref(cfg); - return NULL; + return cmd; + error: + virCommandFree(cmd); + cmd = NULL; + goto cleanup; }