net: introduce helper macro for_each_cmsghdr
Subsystems (9)
PATCH v3 1/1 net: introduce helper macro for_each_cmsghdr
Introduce helper macro for_each_cmsghdr as a wrapper of the enumerating cmsghdr from msghdr, just cleanup.
Signed-off-by Gu Zheng <[email protected]>
---
v3:
-drop the changes about user-land programs as David suggested.
v2:
-use the lower-case macro name as Joe suggested.
crypto/af_alg.c | 2 +- include/linux/socket.h | 4 ++++ net/core/scm.c | 3 +-- net/dccp/proto.c | 5 ++--- net/ipv4/ip_sockglue.c | 2 +- net/ipv6/datagram.c | 2 +- net/iucv/af_iucv.c | 4 +--- net/rds/send.c | 4 ++-- net/rxrpc/ar-output.c | 2 +- net/sctp/socket.c | 3 +-- 10 files changed, 15 insertions(+), 16 deletions(-)
crypto/af_alg.c +1 -1
@@ -399,7 +399,7 @@ int af_alg_cmsg_send(struct msghdr *msg, struct af_alg_control *con) {struct cmsghdr *cmsg; -for (cmsg =CMSG_FIRSTHDR (msg); cmsg; cmsg =CMSG_NXTHDR (msg, cmsg)) { +for_each_cmsghdr (cmsg, msg) {if (!CMSG_OK (msg, cmsg))return -EINVAL ;if (cmsg->cmsg_level !=SOL_ALG )
include/linux/socket.h +4 -0
@@ -94,6 +94,10 @@ struct cmsghdr { (cmsg)->cmsg_len <= (unsigned long) \ ((mhdr)->msg_controllen - \ ((char *)(cmsg) - (char *)(mhdr)->msg_control))) +#define for_each_cmsghdr (cmsg, msg) \ + for (cmsg = CMSG_FIRSTHDR(msg); \ + cmsg; \ + cmsg = CMSG_NXTHDR(msg, cmsg))/* * Get the next cmsg header
net/core/scm.c +1 -2
@@ -129,8 +129,7 @@ int __scm_send(struct socket *sock, struct msghdr *msg, struct scm_cookie *p)struct cmsghdr *cmsg;int err; -for (cmsg =CMSG_FIRSTHDR (msg); cmsg; cmsg =CMSG_NXTHDR (msg, cmsg)) - { +for_each_cmsghdr (cmsg, msg) { err = -EINVAL ;/* Verify that cmsg_len is at least sizeof(struct cmsghdr) */
net/dccp/proto.c +2 -3
@@ -703,7 +703,7 @@ EXPORT_SYMBOL_GPL(compat_dccp_getsockopt);static int dccp_msghdr_parse (struct msghdr *msg,struct sk_buff *skb) { -struct cmsghdr *cmsg =CMSG_FIRSTHDR (msg); +struct cmsghdr *cmsg;/* * Assign an (opaque) qpolicy priority value to skb->priority.
@@ -717,8 +717,7 @@ static int dccp_msghdr_parse(struct msghdr *msg, struct sk_buff *skb)*/ skb->priority =0 ; -for (; cmsg !=NULL ; cmsg =CMSG_NXTHDR (msg, cmsg)) { - +for_each_cmsghdr (cmsg, msg) {if (!CMSG_OK (msg, cmsg))return -EINVAL ;
net/ipv4/ip_sockglue.c +1 -1
@@ -192,7 +192,7 @@ int ip_cmsg_send(struct net *net, struct msghdr *msg, struct ipcm_cookie *ipc,int err, val;struct cmsghdr *cmsg; -for (cmsg =CMSG_FIRSTHDR (msg); cmsg; cmsg =CMSG_NXTHDR (msg, cmsg)) { +for_each_cmsghdr (cmsg, msg) {if (!CMSG_OK (msg, cmsg))return -EINVAL ;#if IS_ENABLED (CONFIG_IPV6 )
net/ipv6/datagram.c +1 -1
@@ -640,7 +640,7 @@ int ip6_datagram_send_ctl(struct net *net, struct sock *sk,int len;int err =0 ; -for (cmsg =CMSG_FIRSTHDR (msg); cmsg; cmsg =CMSG_NXTHDR (msg, cmsg)) { +for_each_cmsghdr (cmsg, msg) {int addr_type;if (!CMSG_OK (msg, cmsg)) {
net/iucv/af_iucv.c +1 -3
@@ -1070,9 +1070,7 @@ static int iucv_sock_sendmsg(struct kiocb *iocb, struct socket *sock, txmsg.class =0 ;/* iterate over control messages */ -for (cmsg =CMSG_FIRSTHDR (msg); cmsg; - cmsg =CMSG_NXTHDR (msg, cmsg)) { - +for_each_cmsghdr (cmsg, msg) {if (!CMSG_OK (msg, cmsg)) { err = -EINVAL ; goto out;
net/rds/send.c +2 -2
@@ -826,7 +826,7 @@ static int rds_rm_size(struct msghdr *msg, int data_len)int cmsg_groups =0 ;int retval; -for (cmsg =CMSG_FIRSTHDR (msg); cmsg; cmsg =CMSG_NXTHDR (msg, cmsg)) { +for_each_cmsghdr (cmsg, msg) {if (!CMSG_OK (msg, cmsg))return -EINVAL ;
@@ -878,7 +878,7 @@ static int rds_cmsg_send(struct rds_sock *rs, struct rds_message *rm,struct cmsghdr *cmsg;int ret =0 ; -for (cmsg =CMSG_FIRSTHDR (msg); cmsg; cmsg =CMSG_NXTHDR (msg, cmsg)) { +for_each_cmsghdr (cmsg, msg) {if (!CMSG_OK (msg, cmsg))return -EINVAL ;
net/rxrpc/ar-output.c +1 -1
@@ -45,7 +45,7 @@ static int rxrpc_sendmsg_cmsg(struct rxrpc_sock *rx, struct msghdr *msg,if (msg->msg_controllen ==0 )return -EINVAL ; -for (cmsg =CMSG_FIRSTHDR (msg); cmsg; cmsg =CMSG_NXTHDR (msg, cmsg)) { +for_each_cmsghdr (cmsg, msg) {if (!CMSG_OK (msg, cmsg))return -EINVAL ;
net/sctp/socket.c +1 -2
@@ -6592,8 +6592,7 @@ static int sctp_msghdr_parse(const struct msghdr *msg, sctp_cmsgs_t *cmsgs)struct cmsghdr *cmsg;struct msghdr *my_msg = (struct msghdr *)msg; -for (cmsg =CMSG_FIRSTHDR (msg); cmsg !=NULL ; - cmsg =CMSG_NXTHDR (my_msg, cmsg)) { +for_each_cmsghdr (cmsg, my_msg) {if (!CMSG_OK (my_msg, cmsg))return -EINVAL ;
Signature · 1 line
1.7.7
From: Gu Zheng <[email protected]>
Date: Thu, 11 Dec 2014 11:22:04 +0800
Quoted 9 lines
Introduce helper macro
for_each_cmsghdras a wrapper of the enumerating cmsghdr from msghdr, just cleanup.Signed-off-by Gu Zheng <[email protected]>---
v3:
-drop the changes about user-land programs as David suggested.
v2:
-use the lower-case macro name as Joe suggested.
Applied, thanks.