summaryrefslogtreecommitdiffstats
path: root/src/cache.c
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2023-09-08 19:13:27 +0200
committerFlorian Westphal <fw@strlen.de>2023-09-08 19:22:21 +0200
commit5722eda4eec170fe26bf274cb550c875f5b94a0c (patch)
tree7ad02aaaab5e48252c7fb1bb8ceab567df06ee00 /src/cache.c
parent6560e2fe6bbb6c60bb1e964b7ba881f98f3c2373 (diff)
cache: avoid accessing uninitialized varible in implicit_chain_cache()
$ ./tests/shell/run-tests.sh -V tests/shell/testcases/cache/0010_implicit_chain_0 Gives: ==59== Conditional jump or move depends on uninitialised value(s) ==59== at 0x48A6A6B: mnl_nft_rule_dump (mnl.c:695) ==59== by 0x48778EA: rule_cache_dump (cache.c:664) ==59== by 0x487797D: rule_init_cache (cache.c:997) ==59== by 0x4877ABF: implicit_chain_cache.isra.0 (cache.c:1032) ==59== by 0x48785C9: cache_init_objects (cache.c:1132) ==59== by 0x48785C9: nft_cache_init (cache.c:1166) ==59== by 0x48785C9: nft_cache_update (cache.c:1224) ==59== by 0x48ADBE1: nft_evaluate (libnftables.c:530) ==59== by 0x48AEC29: nft_run_cmd_from_buffer (libnftables.c:596) ==59== by 0x402983: main (main.c:535) Signed-off-by: Thomas Haller <thaller@redhat.com> Signed-off-by: Florian Westphal <fw@strlen.de>
Diffstat (limited to 'src/cache.c')
-rw-r--r--src/cache.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/cache.c b/src/cache.c
index 3fe6bb40..4e89fe13 100644
--- a/src/cache.c
+++ b/src/cache.c
@@ -1027,8 +1027,10 @@ static int implicit_chain_cache(struct netlink_ctx *ctx, struct table *table,
int ret = 0;
list_for_each_entry(chain, &table->chain_bindings, cache.list) {
- filter.list.table = table->handle.table.name;
- filter.list.chain = chain->handle.chain.name;
+ filter.list = (typeof(filter.list)) {
+ .table = table->handle.table.name,
+ .chain = chain->handle.chain.name,
+ };
ret = rule_init_cache(ctx, table, &filter);
}