On Mon, Mar 17, 2014 at 12:34:21PM +0000, Daniel P. Berrange wrote: > 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@xxxxxxxxxx> > --- > src/conf/nwfilter_params.c | 4 +--- > src/nwfilter/nwfilter_ebiptables_driver.c | 12 ++++++------ > 2 files changed, 7 insertions(+), 9 deletions(-) > > diff --git a/src/conf/nwfilter_params.c b/src/conf/nwfilter_params.c > index a78c407..5393134 100644 > --- a/src/conf/nwfilter_params.c > +++ b/src/conf/nwfilter_params.c > @@ -526,10 +526,8 @@ next: > } > } > > - if (ci->nIter == i) { > - virNWFilterVarCombIterFree(ci); > + if (ci->nIter == i) > return NULL; > - } > > return ci; > } Adding this hunk is indeed needed, I spoke to soon the first time. > diff --git a/src/nwfilter/nwfilter_ebiptables_driver.c b/src/nwfilter/nwfilter_ebiptables_driver.c > index 0505045..e1e0af8 100644 > --- a/src/nwfilter/nwfilter_ebiptables_driver.c > +++ b/src/nwfilter/nwfilter_ebiptables_driver.c > @@ -2869,14 +2869,14 @@ 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, > - rule->varAccess, rule->nVarAccess); > + tmp = vciter = virNWFilterVarCombIterCreate(vars, > + rule->varAccess, rule->nVarAccess); But this line should be wrapped, still. ACK to this version with the line wrapped, then. Martin
Attachment:
signature.asc
Description: Digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list