[PATCH net-next 1/9] netlink: Introduce nlmsg_payload helper

Breno Leitao posted 9 patches 8 months, 1 week ago
There is a newer version of this series
[PATCH net-next 1/9] netlink: Introduce nlmsg_payload helper
Posted by Breno Leitao 8 months, 1 week ago
Create a new helper function, nlmsg_payload(), to simplify checking and
retrieving Netlink message payloads.

This reduces boilerplate code for users who need to verify the message
length before accessing its data.

Suggested-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Breno Leitao <leitao@debian.org>
---
 include/net/netlink.h | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/include/net/netlink.h b/include/net/netlink.h
index 29e0db9403820..6343516f131cc 100644
--- a/include/net/netlink.h
+++ b/include/net/netlink.h
@@ -611,6 +611,19 @@ static inline int nlmsg_len(const struct nlmsghdr *nlh)
 	return nlh->nlmsg_len - NLMSG_HDRLEN;
 }
 
+/**
+ * nlmsg_payload - message payload if the data fits in the len
+ * @nlh: netlink message header
+ * @len: struct length
+ */
+static inline void *nlmsg_payload(const struct nlmsghdr *nlh, size_t len)
+{
+	if (nlh->nlmsg_len < nlmsg_msg_size(len))
+		return NULL;
+
+	return nlmsg_data(nlh);
+}
+
 /**
  * nlmsg_attrdata - head of attributes data
  * @nlh: netlink message header

-- 
2.47.1
Re: [PATCH net-next 1/9] netlink: Introduce nlmsg_payload helper
Posted by Jakub Kicinski 8 months, 1 week ago
On Fri, 11 Apr 2025 10:00:48 -0700 Breno Leitao wrote:
> +/**
> + * nlmsg_payload - message payload if the data fits in the len
> + * @nlh: netlink message header
> + * @len: struct length
> + */

W=1 now warns about the lack of Return: statements and we return 
the pointer here. We gotta add it to the kdoc.

With that fixed:

Reviewed-by: Jakub Kicinski <kuba@kernel.org>
-- 
pw-bot: cr
Re: [PATCH net-next 1/9] netlink: Introduce nlmsg_payload helper
Posted by Kuniyuki Iwashima 8 months, 1 week ago
From: Breno Leitao <leitao@debian.org>
Date: Fri, 11 Apr 2025 10:00:48 -0700
> Create a new helper function, nlmsg_payload(), to simplify checking and
> retrieving Netlink message payloads.
> 
> This reduces boilerplate code for users who need to verify the message
> length before accessing its data.
> 
> Suggested-by: Jakub Kicinski <kuba@kernel.org>
> Signed-off-by: Breno Leitao <leitao@debian.org>

Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>