[libvirt] [PATCH 4/7] util: Resolve memory leaks in virLogParse{Output|Filter}

John Ferlan jferlan at redhat.com
Mon Oct 10 15:42:15 UTC 2016


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.

Signed-off-by: John Ferlan <jferlan at redhat.com>
---
 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 14ee701..52b0eea 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.7.4




More information about the libvir-list mailing list