Re: [libnftnl PATCH 1/2] src: not create iterator with empty list

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



El 10/01/15 a las 19:20, Pablo Neira Ayuso escribió:
On Fri, Jan 09, 2015 at 01:47:40PM +0100, Alvaro Neira Ayuso wrote:
Now, we create iterator without test if the list is empty. If the list
is empty, we have a crash when we set up the current element.
With this patch, we test if the list is empty before to create the iterator. If
the list is empty the iterator return NULL.

Please, handle this from the _next() function.

The idea is to set iter->cur to NULL if the list is empty from
iter_create, ie.

         if (iter->r->expr_list.next == &iter->r.expr_list)
                 iter->cur = NULL;
         else
                 iter->cur = list_entry(...);

Then, from _next() you check for:

         if (expr == NULL)
                 return NULL;

Ok, nice idea.


Signed-off-by: Alvaro Neira Ayuso <alvaroneay@xxxxxxxxx>
---
  src/chain.c    |    3 +++
  src/rule.c     |    6 ++++++
  src/set.c      |    3 +++
  src/set_elem.c |    3 +++
  src/table.c    |    3 +++

I can count up to six iterator interfaces, I only see 5 here, please
make sure you adapt all spots. Thanks.


mmm yes and I have changed the code in the six iterator interfaces. I have changed:

- nft_chain_list_iter_create
- nft_rule_expr_iter_create
- nft_rule_list_iter_create
- nft_set_list_iter_create
- nft_set_elems_iter_create
- nft_table_list_iter_create

Have I forgot any?
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Netfitler Users]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux