| From fa210c661487fe0597c43e1c3781342629f65ffe Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 27 Oct 2022 14:21:07 -0700 |
| Subject: netlink: hide validation union fields from kdoc |
| |
| From: Jakub Kicinski <kuba@kernel.org> |
| |
| [ Upstream commit 7354c9024f2835f6122ed9612e21ab379df050f9 ] |
| |
| Mark the validation fields as private, users shouldn't set |
| them directly and they are too complicated to explain in |
| a more succinct way (there's already a long explanation |
| in the comment above). |
| |
| The strict_start_type field is set directly and has a dedicated |
| comment so move that above the "private" section. |
| |
| Link: https://lore.kernel.org/r/20221027212107.2639255-1-kuba@kernel.org |
| Signed-off-by: Jakub Kicinski <kuba@kernel.org> |
| Stable-dep-of: 8f15b5071b45 ("netfilter: ctnetlink: use netlink policy range checks") |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| include/net/netlink.h | 31 ++++++++++++++++++------------- |
| 1 file changed, 18 insertions(+), 13 deletions(-) |
| |
| diff --git a/include/net/netlink.h b/include/net/netlink.h |
| index 6eb4593983319..8c67db47556e2 100644 |
| --- a/include/net/netlink.h |
| +++ b/include/net/netlink.h |
| @@ -317,19 +317,10 @@ struct nla_policy { |
| u8 validation_type; |
| u16 len; |
| union { |
| - const u32 bitfield32_valid; |
| - const u32 mask; |
| - const char *reject_message; |
| - const struct nla_policy *nested_policy; |
| - struct netlink_range_validation *range; |
| - struct netlink_range_validation_signed *range_signed; |
| - struct { |
| - s16 min, max; |
| - u8 network_byte_order:1; |
| - }; |
| - int (*validate)(const struct nlattr *attr, |
| - struct netlink_ext_ack *extack); |
| - /* This entry is special, and used for the attribute at index 0 |
| + /** |
| + * @strict_start_type: first attribute to validate strictly |
| + * |
| + * This entry is special, and used for the attribute at index 0 |
| * only, and specifies special data about the policy, namely it |
| * specifies the "boundary type" where strict length validation |
| * starts for any attribute types >= this value, also, strict |
| @@ -348,6 +339,20 @@ struct nla_policy { |
| * was added to enforce strict validation from thereon. |
| */ |
| u16 strict_start_type; |
| + |
| + /* private: use NLA_POLICY_*() to set */ |
| + const u32 bitfield32_valid; |
| + const u32 mask; |
| + const char *reject_message; |
| + const struct nla_policy *nested_policy; |
| + struct netlink_range_validation *range; |
| + struct netlink_range_validation_signed *range_signed; |
| + struct { |
| + s16 min, max; |
| + u8 network_byte_order:1; |
| + }; |
| + int (*validate)(const struct nlattr *attr, |
| + struct netlink_ext_ack *extack); |
| }; |
| }; |
| |
| -- |
| 2.51.0 |
| |