Before outputting counters in set definitions the
`NFT_CTX_OUTPUT_STATELESS` flag was set to suppress output of the
counter state and unconditionally cleared afterwards, regardless of
whether it had been originally set. Record the original set of flags
and restore it.
Link: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=994273
Fixes: 6d80e0f15492 ("src: support for counter in set definition")
Signed-off-by: Jeremy Sowden <jeremy@azazel.net>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
nft_print(octx, "%s%s", opts->tab, opts->tab);
if (!list_empty(&set->stmt_list)) {
+ unsigned int flags = octx->flags;
+
octx->flags |= NFT_CTX_OUTPUT_STATELESS;
list_for_each_entry(stmt, &set->stmt_list, list) {
stmt_print(stmt, octx);
if (!list_is_last(&stmt->list, &set->stmt_list))
nft_print(octx, " ");
}
- octx->flags &= ~NFT_CTX_OUTPUT_STATELESS;
+ octx->flags = flags;
}
if (!list_empty(&set->stmt_list))