diff options
author | Thomas Haller <thaller@redhat.com> | 2023-09-08 19:13:27 +0200 |
---|---|---|
committer | Florian Westphal <fw@strlen.de> | 2023-09-08 19:22:21 +0200 |
commit | 5722eda4eec170fe26bf274cb550c875f5b94a0c (patch) | |
tree | 7ad02aaaab5e48252c7fb1bb8ceab567df06ee00 | |
parent | 6560e2fe6bbb6c60bb1e964b7ba881f98f3c2373 (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>
-rw-r--r-- | src/cache.c | 6 |
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); } |