mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-23 22:25:25 +00:00
Give virNWFilterVarCombIterNext saner semantics
The virNWFilterVarCombIterNext method will free its parameter when it gets to the end of the iterator. This is somewhat misleading design, making it appear as if the caller has a memory leak. Remove the free'ing of the parameter and ensure that the calling method ebiptablesCreateRuleInstanceIterate free's it instead. Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
This commit is contained in:
parent
9f7da130f4
commit
ef2c4c965b
@ -526,10 +526,8 @@ next:
|
||||
}
|
||||
}
|
||||
|
||||
if (ci->nIter == i) {
|
||||
virNWFilterVarCombIterFree(ci);
|
||||
if (ci->nIter == i)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return ci;
|
||||
}
|
||||
|
@ -2772,13 +2772,13 @@ ebiptablesCreateRuleInstanceIterate(
|
||||
virNWFilterRuleInstPtr res)
|
||||
{
|
||||
int rc = 0;
|
||||
virNWFilterVarCombIterPtr vciter;
|
||||
virNWFilterVarCombIterPtr vciter, tmp;
|
||||
|
||||
/* rule->vars holds all the variables names that this rule will access.
|
||||
* iterate over all combinations of the variables' values and instantiate
|
||||
* the filtering rule with each combination.
|
||||
*/
|
||||
vciter = virNWFilterVarCombIterCreate(vars,
|
||||
tmp = vciter = virNWFilterVarCombIterCreate(vars,
|
||||
rule->varAccess, rule->nVarAccess);
|
||||
if (!vciter)
|
||||
return -1;
|
||||
@ -2788,12 +2788,12 @@ ebiptablesCreateRuleInstanceIterate(
|
||||
nwfilter,
|
||||
rule,
|
||||
ifname,
|
||||
vciter,
|
||||
tmp,
|
||||
res);
|
||||
if (rc < 0)
|
||||
break;
|
||||
vciter = virNWFilterVarCombIterNext(vciter);
|
||||
} while (vciter != NULL);
|
||||
tmp = virNWFilterVarCombIterNext(tmp);
|
||||
} while (tmp != NULL);
|
||||
|
||||
virNWFilterVarCombIterFree(vciter);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user