net/sched: cls_api: complement tcf_tfilter_dump_policy
authorLin Ma <linma@zju.edu.cn>
Thu, 28 Dec 2023 06:43:58 +0000 (14:43 +0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 3 Jan 2024 11:54:39 +0000 (11:54 +0000)
In function `tc_dump_tfilter`, the attributes array is parsed via
tcf_tfilter_dump_policy which only describes TCA_DUMP_FLAGS. However,
the NLA TCA_CHAIN is also accessed with `nla_get_u32`.

The access to TCA_CHAIN is introduced in commit 5bc1701881e3 ("net:
sched: introduce multichain support for filters") and no nla_policy is
provided for parsing at that point. Later on, tcf_tfilter_dump_policy is
introduced in commit f8ab1807a9c9 ("net: sched: introduce terse dump
flag") while still ignoring the fact that TCA_CHAIN needs a check. This
patch does that by complementing the policy to allow the access
discussed here can be safe as other cases just choose rtm_tca_policy as
the parsing policy.

Signed-off-by: Lin Ma <linma@zju.edu.cn>
Acked-by: Jamal Hadi Salim <jhs@mojatatu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/cls_api.c

index 3c50b4037755b2624424a86ef38fa22eec7b3269..adf5de1ff7733559f49ca45bff69f05a233c09bc 100644 (file)
@@ -2735,6 +2735,7 @@ errout:
 }
 
 static const struct nla_policy tcf_tfilter_dump_policy[TCA_MAX + 1] = {
+       [TCA_CHAIN]      = { .type = NLA_U32 },
        [TCA_DUMP_FLAGS] = NLA_POLICY_BITFIELD32(TCA_DUMP_FLAGS_TERSE),
 };