From: Breno Leitao <leitao@debian.org>
To: "David S. Miller" <davem@davemloft.net>,
	 Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>,
	 Paolo Abeni <pabeni@redhat.com>, Simon Horman <horms@kernel.org>,
	 David Ahern <dsahern@kernel.org>
Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
	 Breno Leitao <leitao@debian.org>,
	kernel-team@meta.com,  Kuniyuki Iwashima <kuniyu@amazon.com>
Subject: [PATCH net-next v2 10/10] net: fib_rules: Use nlmsg_payload in fib_{new,del}rule()
Date: Mon, 14 Apr 2025 06:24:16 -0700	[thread overview]
Message-ID: <20250414-nlmsg-v2-10-3d90cb42c6af@debian.org> (raw)
In-Reply-To: <20250414-nlmsg-v2-0-3d90cb42c6af@debian.org>

Leverage the new nlmsg_payload() helper to avoid checking for message
size and then reading the nlmsg data.

Suggested-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Signed-off-by: Breno Leitao <leitao@debian.org>
---
 net/core/fib_rules.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/net/core/fib_rules.c b/net/core/fib_rules.c
index 6a7a28bf631c2..06052b6c946b9 100644
--- a/net/core/fib_rules.c
+++ b/net/core/fib_rules.c
@@ -852,13 +852,14 @@ int fib_newrule(struct net *net, struct sk_buff *skb, struct nlmsghdr *nlh,
 		struct netlink_ext_ack *extack, bool rtnl_held)
 {
 	struct fib_rule *rule = NULL, *r, *last = NULL;
-	struct fib_rule_hdr *frh = nlmsg_data(nlh);
 	int err = -EINVAL, unresolved = 0;
 	struct fib_rules_ops *ops = NULL;
 	struct nlattr *tb[FRA_MAX + 1];
 	bool user_priority = false;
+	struct fib_rule_hdr *frh;
 
-	if (nlh->nlmsg_len < nlmsg_msg_size(sizeof(*frh))) {
+	frh = nlmsg_payload(nlh, sizeof(*frh));
+	if (!frh) {
 		NL_SET_ERR_MSG(extack, "Invalid msg length");
 		goto errout;
 	}
@@ -980,13 +981,14 @@ int fib_delrule(struct net *net, struct sk_buff *skb, struct nlmsghdr *nlh,
 		struct netlink_ext_ack *extack, bool rtnl_held)
 {
 	struct fib_rule *rule = NULL, *nlrule = NULL;
-	struct fib_rule_hdr *frh = nlmsg_data(nlh);
 	struct fib_rules_ops *ops = NULL;
 	struct nlattr *tb[FRA_MAX+1];
 	bool user_priority = false;
+	struct fib_rule_hdr *frh;
 	int err = -EINVAL;
 
-	if (nlh->nlmsg_len < nlmsg_msg_size(sizeof(*frh))) {
+	frh = nlmsg_payload(nlh, sizeof(*frh));
+	if (!frh) {
 		NL_SET_ERR_MSG(extack, "Invalid msg length");
 		goto errout;
 	}

-- 
2.47.1


  parent reply	other threads:[~2025-04-14 13:24 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-14 13:24 [PATCH net-next v2 00/10] net: Introduce nlmsg_payload helper Breno Leitao
2025-04-14 13:24 ` [PATCH net-next v2 01/10] netlink: " Breno Leitao
2025-04-14 13:24 ` [PATCH net-next v2 02/10] neighbour: Use nlmsg_payload in neightbl_valid_dump_info Breno Leitao
2025-04-14 13:24 ` [PATCH net-next v2 03/10] neighbour: Use nlmsg_payload in neigh_valid_get_req Breno Leitao
2025-04-14 13:24 ` [PATCH net-next v2 04/10] rtnetlink: Use nlmsg_payload in valid_fdb_dump_strict Breno Leitao
2025-04-14 13:24 ` [PATCH net-next v2 05/10] mpls: Use nlmsg_payload in mpls_valid_fib_dump_req Breno Leitao
2025-04-14 13:24 ` [PATCH net-next v2 06/10] ipv6: Use nlmsg_payload in inet6_valid_dump_ifaddr_req Breno Leitao
2025-04-14 13:24 ` [PATCH net-next v2 07/10] ipv6: Use nlmsg_payload in inet6_rtm_valid_getaddr_req Breno Leitao
2025-04-14 13:24 ` [PATCH net-next v2 08/10] mpls: Use nlmsg_payload in mpls_valid_getroute_req Breno Leitao
2025-04-14 13:24 ` [PATCH net-next v2 09/10] net: fib_rules: Use nlmsg_payload in fib_valid_dumprule_req Breno Leitao
2025-04-14 13:24 ` Breno Leitao [this message]
2025-04-14 18:42   ` [PATCH net-next v2 10/10] net: fib_rules: Use nlmsg_payload in fib_{new,del}rule() Kuniyuki Iwashima
2025-04-15 15:40 ` [PATCH net-next v2 00/10] net: Introduce nlmsg_payload helper patchwork-bot+netdevbpf

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250414-nlmsg-v2-10-3d90cb42c6af@debian.org \
    --to=leitao@debian.org \
    --cc=davem@davemloft.net \
    --cc=dsahern@kernel.org \
    --cc=edumazet@google.com \
    --cc=horms@kernel.org \
    --cc=kernel-team@meta.com \
    --cc=kuba@kernel.org \
    --cc=kuniyu@amazon.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.