From: John Ferlan Date: Wed, 2 Dec 2020 12:43:19 +0000 (-0500) Subject: logging: Resolve mem leak in virLogDaemonPreExecRestart X-Git-Tag: v7.0.0-rc1~354 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=232687f6ce805d95ede75c7ae24f1bb0383909ba;p=thirdparty%2Flibvirt.git logging: Resolve mem leak in virLogDaemonPreExecRestart 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/logging/log_daemon.c b/src/logging/log_daemon.c index be93c63eb5..6b8f3b6fe5 100644 --- a/src/logging/log_daemon.c +++ b/src/logging/log_daemon.c @@ -508,7 +508,7 @@ virLogDaemonPreExecRestart(const char *state_file, virJSONValuePtr child; char *state = NULL; virJSONValuePtr object = virJSONValueNewObject(); - char *magic; + char *magic = NULL; VIR_DEBUG("Running pre-restart exec"); @@ -523,10 +523,8 @@ virLogDaemonPreExecRestart(const char *state_file, if (!(magic = virLogDaemonGetExecRestartMagic())) goto cleanup; - if (virJSONValueObjectAppendString(object, "magic", magic) < 0) { - VIR_FREE(magic); + if (virJSONValueObjectAppendString(object, "magic", magic) < 0) goto cleanup; - } if (!(child = virLogHandlerPreExecRestart(logDaemon->handler))) goto cleanup; @@ -559,6 +557,7 @@ virLogDaemonPreExecRestart(const char *state_file, abort(); /* This should be impossible to reach */ cleanup: + VIR_FREE(magic); VIR_FREE(state); virJSONValueFree(object); return -1;