From 6de78c63a4c0e05846a3a2094619688fb431fec3 Mon Sep 17 00:00:00 2001 From: John Ferlan Date: Mon, 10 Oct 2016 07:18:30 -0400 Subject: [PATCH] util: Resolve memory leaks in virLogParse{Output|Filter} In both virLogParseOutput and virLogParseFilter, rather than returning NULL, goto cleanup since it's possible that for each the first condition passes, but the || condition doesn't and thus we leak memory. --- src/util/virlog.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/util/virlog.c b/src/util/virlog.c index 14ee7010f0..52b0eea30b 100644 --- a/src/util/virlog.c +++ b/src/util/virlog.c @@ -1466,7 +1466,7 @@ virLogParseOutput(const char *src) if (!(tokens = virStringSplitCount(src, ":", 0, &count)) || count < 2) { virReportError(VIR_ERR_INVALID_ARG, _("Malformed format for output '%s'"), src); - return NULL; + goto cleanup; } if (virStrToLong_uip(tokens[0], NULL, 10, &prio) < 0 || @@ -1575,7 +1575,7 @@ virLogParseFilter(const char *src) if (!(tokens = virStringSplitCount(src, ":", 0, &count)) || count != 2) { virReportError(VIR_ERR_INVALID_ARG, _("Malformed format for filter '%s'"), src); - return NULL; + goto cleanup; } if (virStrToLong_uip(tokens[0], NULL, 10, &prio) < 0 || -- 2.47.2