net: Split msg_iovlen check in recvmsg into each protocol

To prepare for supporting multiple iov in each protocol.

Signed-off-by: Zhe Weng <wengzhe@xiaomi.com>
This commit is contained in:
Zhe Weng
2024-10-22 15:45:11 +08:00
committed by Xiang Xiao
parent 4d17c353dd
commit 87a7714103
12 changed files with 55 additions and 5 deletions
+5
View File
@@ -330,6 +330,11 @@ ssize_t bluetooth_recvmsg(FAR struct socket *psock, FAR struct msghdr *msg,
return -EPROTONOSUPPORT;
}
if (msg->msg_iovlen != 1)
{
return -ENOTSUP;
}
/* Perform the packet recvmsg() operation */
/* Initialize the state structure. This is done with the network
+5
View File
@@ -526,6 +526,11 @@ ssize_t can_recvmsg(FAR struct socket *psock, FAR struct msghdr *msg,
return -ENOSYS;
}
if (msg->msg_iovlen != 1)
{
return -ENOTSUP;
}
net_lock();
/* Initialize the state structure. */
+5
View File
@@ -296,6 +296,11 @@ ssize_t icmp_recvmsg(FAR struct socket *psock, FAR struct msghdr *msg,
/* Some sanity checks */
if (msg->msg_iovlen != 1)
{
return -ENOTSUP;
}
DEBUGASSERT(buf != NULL);
if (len < ICMP_HDRLEN)
+5
View File
@@ -307,6 +307,11 @@ ssize_t icmpv6_recvmsg(FAR struct socket *psock, FAR struct msghdr *msg,
/* Some sanity checks */
if (msg->msg_iovlen != 1)
{
return -ENOTSUP;
}
DEBUGASSERT(buf != NULL);
if (len < ICMPv6_HDRLEN)
+5
View File
@@ -330,6 +330,11 @@ ssize_t ieee802154_recvmsg(FAR struct socket *psock, FAR struct msghdr *msg,
return -EPROTONOSUPPORT;
}
if (msg->msg_iovlen != 1)
{
return -ENOTSUP;
}
/* Perform the packet recvfrom() operation */
/* Initialize the state structure. This is done with the network
+5
View File
@@ -2273,6 +2273,11 @@ static ssize_t inet_recvmsg(FAR struct socket *psock,
{
ssize_t ret;
if (msg->msg_iovlen != 1)
{
return -ENOTSUP;
}
/* If a 'from' address has been provided, verify that it is large
* enough to hold this address family.
*/
+5
View File
@@ -552,6 +552,11 @@ ssize_t local_recvmsg(FAR struct socket *psock, FAR struct msghdr *msg,
return 0;
}
if (msg->msg_iovlen != 1)
{
return -ENOTSUP;
}
DEBUGASSERT(buf);
/* Check for a stream socket */
+5
View File
@@ -680,6 +680,11 @@ static ssize_t netlink_recvmsg(FAR struct socket *psock,
DEBUGASSERT(from == NULL ||
(fromlen != NULL && *fromlen >= sizeof(struct sockaddr_nl)));
if (msg->msg_iovlen != 1)
{
return -ENOTSUP;
}
/* Find the response to this message. The return value */
entry = netlink_tryget_response(psock->s_conn);
+5
View File
@@ -410,6 +410,11 @@ ssize_t pkt_recvmsg(FAR struct socket *psock, FAR struct msghdr *msg,
return -EINVAL;
}
if (msg->msg_iovlen != 1)
{
return -ENOTSUP;
}
if (psock->s_type != SOCK_RAW)
{
nerr("ERROR: Unsupported socket type: %d\n", psock->s_type);
+5
View File
@@ -1240,6 +1240,11 @@ static ssize_t rpmsg_socket_recvmsg(FAR struct socket *psock,
size_t len = msg->msg_iov->iov_len;
ssize_t ret;
if (msg->msg_iovlen != 1)
{
return -ENOTSUP;
}
if (psock->s_type != SOCK_STREAM &&
_SS_ISBOUND(conn->sconn.s_flags) &&
!_SS_ISCONNECTED(conn->sconn.s_flags))
-5
View File
@@ -88,11 +88,6 @@ ssize_t psock_recvmsg(FAR struct socket *psock, FAR struct msghdr *msg,
return -EINVAL;
}
if (msg->msg_iovlen != 1)
{
return -ENOTSUP;
}
/* Verify that the sockfd corresponds to valid, allocated socket */
if (psock == NULL || psock->s_conn == NULL)
+5
View File
@@ -222,6 +222,11 @@ ssize_t usrsock_recvmsg(FAR struct socket *psock, FAR struct msghdr *msg,
socklen_t outaddrlen = 0;
ssize_t ret;
if (msg->msg_iovlen != 1)
{
return -ENOTSUP;
}
if (fromlen)
{
if (*fromlen > 0 && from == NULL)