[libvirt] [PATCH] Give virNWFilterVarCombIterNext saner semantics
Martin Kletzander
mkletzan at redhat.com
Mon Mar 17 13:00:25 UTC 2014
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 at redhat.com>
> ---
> 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20140317/99c55555/attachment-0001.sig>
More information about the libvir-list
mailing list