logging: Resolve mem leak in virLogDaemonPreExecRestart

Initialize and free @magic since virJSONValueObjectAppendString
does not free it for us eventually.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
John Ferlan 2020-12-02 07:43:19 -05:00 committed by Ján Tomko
parent ff6f8a6be0
commit 232687f6ce
1 changed files with 3 additions and 4 deletions

View File

@ -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;