From: John Ferlan Date: Wed, 2 Dec 2020 12:43:20 +0000 (-0500) Subject: locking: Resolve mem leak in virLockDaemonPreExecRestart X-Git-Tag: v7.0.0-rc1~353 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6f0418173b5567d17dba43247efc058f0318485b;p=thirdparty%2Flibvirt.git locking: Resolve mem leak in virLockDaemonPreExecRestart Initialize and free @magic since virJSONValueObjectAppendString does not free it for us eventually. Signed-off-by: John Ferlan Reviewed-by: Ján Tomko Signed-off-by: Ján Tomko --- diff --git a/src/locking/lock_daemon.c b/src/locking/lock_daemon.c index 57c7fb088f..851e9fc6f0 100644 --- a/src/locking/lock_daemon.c +++ b/src/locking/lock_daemon.c @@ -700,7 +700,7 @@ virLockDaemonPreExecRestart(const char *state_file, virJSONValuePtr child; char *state = NULL; virJSONValuePtr object = virJSONValueNewObject(); - char *magic; + char *magic = NULL; virHashKeyValuePairPtr pairs = NULL, tmp; virJSONValuePtr lockspaces; @@ -748,10 +748,8 @@ virLockDaemonPreExecRestart(const char *state_file, if (!(magic = virLockDaemonGetExecRestartMagic())) goto cleanup; - if (virJSONValueObjectAppendString(object, "magic", magic) < 0) { - VIR_FREE(magic); + if (virJSONValueObjectAppendString(object, "magic", magic) < 0) goto cleanup; - } if (!(state = virJSONValueToString(object, true))) goto cleanup; @@ -775,6 +773,7 @@ virLockDaemonPreExecRestart(const char *state_file, abort(); /* This should be impossible to reach */ cleanup: + VIR_FREE(magic); VIR_FREE(pairs); VIR_FREE(state); virJSONValueFree(object);