summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhil Sutter <phil@nwl.cc>2019-10-07 12:35:21 +0200
committerPhil Sutter <phil@nwl.cc>2019-10-10 23:51:16 +0200
commit97fbef55d1e89ca73bf1e6b31ac46d756ac499f1 (patch)
treed8013a3236704adcd94576ea86e9e32d3a78766a
parent4e9782cae29034c4eefd31703ba77aee7eca2233 (diff)
nft: Avoid nested cache fetching
Don't call fetch_table_cache() from within fetch_chain_cache() but instead from __nft_build_cache(). Since that is the only caller of fetch_chain_cache(), this change should not have any effect in practice. Signed-off-by: Phil Sutter <phil@nwl.cc> Acked-by: Pablo Neira Ayuso <pablo@netfilter.org>
-rw-r--r--iptables/nft.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/iptables/nft.c b/iptables/nft.c
index bdc9fbc3..3228842c 100644
--- a/iptables/nft.c
+++ b/iptables/nft.c
@@ -1414,8 +1414,6 @@ static int fetch_chain_cache(struct nft_handle *h)
struct nlmsghdr *nlh;
int i, ret;
- fetch_table_cache(h);
-
for (i = 0; i < NFT_TABLE_MAX; i++) {
enum nft_table_type type = h->tables[i].type;
@@ -1592,6 +1590,7 @@ static void __nft_build_cache(struct nft_handle *h)
retry:
mnl_genid_get(h, &genid_start);
+ fetch_table_cache(h);
fetch_chain_cache(h);
fetch_rule_cache(h);
h->have_cache = true;