Skip to content

Commit

Permalink
netfilter: nf_tables: fix dumping with large number of sets
Browse files Browse the repository at this point in the history
If not table name is specified, the dumping of the existing sets
may be incomplete with a sufficiently large number of sets and
tables. This patch fixes missing reset of the cursors after
finding the location of the last object that has been included
in the previous multi-part message.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
  • Loading branch information
Pablo Neira Ayuso committed Dec 28, 2013
1 parent b25adce commit e38195b
Showing 1 changed file with 7 additions and 3 deletions.
10 changes: 7 additions & 3 deletions net/netfilter/nf_tables_api.c
Original file line number Diff line number Diff line change
Expand Up @@ -2098,17 +2098,21 @@ static int nf_tables_dump_sets_all(struct nft_ctx *ctx, struct sk_buff *skb,
struct netlink_callback *cb)
{
const struct nft_set *set;
unsigned int idx = 0, s_idx = cb->args[0];
unsigned int idx, s_idx = cb->args[0];
struct nft_table *table, *cur_table = (struct nft_table *)cb->args[2];

if (cb->args[1])
return skb->len;

list_for_each_entry(table, &ctx->afi->tables, list) {
if (cur_table && cur_table != table)
continue;
if (cur_table) {
if (cur_table != table)
continue;

cur_table = NULL;
}
ctx->table = table;
idx = 0;
list_for_each_entry(set, &ctx->table->sets, list) {
if (idx < s_idx)
goto cont;
Expand Down

0 comments on commit e38195b

Please sign in to comment.