From: Phil Sutter Date: Mon, 7 Oct 2019 10:35:21 +0000 (+0200) Subject: nft: Avoid nested cache fetching X-Git-Tag: v1.8.4~55 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=97fbef55d1e89ca73bf1e6b31ac46d756ac499f1;p=thirdparty%2Fiptables.git 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 Acked-by: Pablo Neira Ayuso --- 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;