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 <jferlan@redhat.com>
This commit is contained in:
John Ferlan 2015-01-09 08:42:13 -05:00
parent a267f01532
commit b789db36ae
1 changed files with 3 additions and 1 deletions

View File

@ -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) {