Skip to content

Commit 99a0efb

Browse files
Florian Westphalummakynes
authored andcommitted
netfilter: nf_tables: always use an upper set size for dynsets
nft rejects rules that lack a timeout and a size limit when they're used to add elements from packet path. Pick a sane upperlimit instead of rejecting outright. The upperlimit is visible to userspace, just as if it would have been given during set declaration. Signed-off-by: Florian Westphal <[email protected]> Signed-off-by: Pablo Neira Ayuso <[email protected]>
1 parent 8e1102d commit 99a0efb

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

net/netfilter/nft_dynset.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ static void *nft_dynset_new(struct nft_set *set, const struct nft_expr *expr,
3636
u64 timeout;
3737
void *elem;
3838

39-
if (set->size && !atomic_add_unless(&set->nelems, 1, set->size))
39+
if (!atomic_add_unless(&set->nelems, 1, set->size))
4040
return NULL;
4141

4242
timeout = priv->timeout ? : set->timeout;
@@ -216,6 +216,9 @@ static int nft_dynset_init(const struct nft_ctx *ctx,
216216
if (err < 0)
217217
goto err1;
218218

219+
if (set->size == 0)
220+
set->size = 0xffff;
221+
219222
priv->set = set;
220223
return 0;
221224

0 commit comments

Comments
 (0)