summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2024-09-17 19:18:09 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2024-09-17 21:42:30 +0200
commite3d2a5e852ceea587bfff5878e6e5c569f15116a (patch)
treeb419ff6076d61e292c88c2cbeeb52b6a87a940ac
parent9a6a8626504f64d40126afd279d9526b6bbccc60 (diff)
cache: initialize filter when fetching implicit chains
ASAN reports: src/cache.c:734:25: runtime error: load of value 189, which is not a valid value for type '_Bool' because filter->reset.rule remains uninitialized. Initialize filter and replace existing construct to initialize table and chain which leaves remaining fields uninitialized. Fixes: dbff26bfba83 ("cache: consolidate reset command") Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-rw-r--r--src/cache.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/cache.c b/src/cache.c
index c8ef1603..b75a5bf3 100644
--- a/src/cache.c
+++ b/src/cache.c
@@ -1118,15 +1118,14 @@ err_ctx_list:
static int implicit_chain_cache(struct netlink_ctx *ctx, struct table *table,
const char *chain_name)
{
- struct nft_cache_filter filter;
+ struct nft_cache_filter filter = {};
struct chain *chain;
int ret = 0;
list_for_each_entry(chain, &table->chain_bindings, cache.list) {
- filter.list = (typeof(filter.list)) {
- .table = table->handle.table.name,
- .chain = chain->handle.chain.name,
- };
+ filter.list.table = table->handle.table.name;
+ filter.list.chain = chain->handle.chain.name;
+
ret = rule_init_cache(ctx, table, &filter);
}