From b789db36ae1cb5a48986c3b9e3bfb64131367872 Mon Sep 17 00:00:00 2001 From: John Ferlan Date: Fri, 9 Jan 2015 08:42:13 -0500 Subject: [PATCH] virconf: Resolve a possible memory leak in virConfSetValue Found this one by inspection... The API claims to "own" the input value even in the case of error. However, in the initial entry to the API if the value exists, was STRING, but without a str value it just returned without freeing the 'value' which it claims to now own. So I added the virConfFreeValue() call in order to resolve. Signed-off-by: John Ferlan --- src/util/virconf.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/util/virconf.c b/src/util/virconf.c index b1509feea7..01e5a6aa70 100644 --- a/src/util/virconf.c +++ b/src/util/virconf.c @@ -887,8 +887,10 @@ virConfSetValue(virConfPtr conf, { virConfEntryPtr cur, prev = NULL; - if (value && value->type == VIR_CONF_STRING && value->str == NULL) + if (value && value->type == VIR_CONF_STRING && value->str == NULL) { + virConfFreeValue(value); return -1; + } cur = conf->entries; while (cur != NULL) {