Lines Matching defs:msg
725 static inline int sock_sendmsg_nosec(struct socket *sock, struct msghdr *msg)
728 inet_sendmsg, sock, msg,
729 msg_data_left(msg));
737 static int __sock_sendmsg(struct socket *sock, struct msghdr *msg)
739 int err = security_socket_sendmsg(sock, msg,
740 msg_data_left(msg));
742 return err ?: sock_sendmsg_nosec(sock, msg);
748 * @msg: message to send
750 * Sends @msg through @sock, passing through LSM.
753 int sock_sendmsg(struct socket *sock, struct msghdr *msg)
755 struct sockaddr_storage *save_addr = (struct sockaddr_storage *)msg->msg_name;
757 int save_len = msg->msg_namelen;
760 if (msg->msg_name) {
761 memcpy(&address, msg->msg_name, msg->msg_namelen);
762 msg->msg_name = &address;
765 ret = __sock_sendmsg(sock, msg);
766 msg->msg_name = save_addr;
767 msg->msg_namelen = save_len;
776 * @msg: message header
785 int kernel_sendmsg(struct socket *sock, struct msghdr *msg,
788 iov_iter_kvec(&msg->msg_iter, ITER_SOURCE, vec, num, size);
789 return sock_sendmsg(sock, msg);
836 static void put_ts_pktinfo(struct msghdr *msg, struct sk_buff *skb,
857 put_cmsg(msg, SOL_SOCKET, SCM_TIMESTAMPING_PKTINFO,
910 void __sock_recv_timestamp(struct msghdr *msg, struct sock *sk,
936 put_cmsg(msg, SOL_SOCKET, SO_TIMESTAMP_NEW,
942 put_cmsg(msg, SOL_SOCKET, SO_TIMESTAMP_OLD,
950 put_cmsg(msg, SOL_SOCKET, SO_TIMESTAMPNS_NEW,
956 put_cmsg(msg, SOL_SOCKET, SO_TIMESTAMPNS_OLD,
991 put_ts_pktinfo(msg, skb, if_index);
996 put_cmsg_scm_timestamping64(msg, &tss);
998 put_cmsg_scm_timestamping(msg, &tss);
1002 put_cmsg(msg, SOL_SOCKET, SCM_TIMESTAMPING_OPT_STATS,
1009 void __sock_recv_wifi_status(struct msghdr *msg, struct sock *sk,
1021 put_cmsg(msg, SOL_SOCKET, SCM_WIFI_STATUS, sizeof(ack), &ack);
1026 static inline void sock_recv_drops(struct msghdr *msg, struct sock *sk,
1030 put_cmsg(msg, SOL_SOCKET, SO_RXQ_OVFL,
1034 static void sock_recv_mark(struct msghdr *msg, struct sock *sk,
1041 put_cmsg(msg, SOL_SOCKET, SO_MARK, sizeof(__u32), &mark);
1045 static void sock_recv_priority(struct msghdr *msg, struct sock *sk,
1051 put_cmsg(msg, SOL_SOCKET, SO_PRIORITY, sizeof(__u32), &priority);
1055 void __sock_recv_cmsgs(struct msghdr *msg, struct sock *sk,
1058 sock_recv_timestamp(msg, sk, skb);
1059 sock_recv_drops(msg, sk, skb);
1060 sock_recv_mark(msg, sk, skb);
1061 sock_recv_priority(msg, sk, skb);
1075 static inline int sock_recvmsg_nosec(struct socket *sock, struct msghdr *msg,
1080 inet_recvmsg, sock, msg,
1081 msg_data_left(msg), flags);
1090 * @msg: message to receive
1093 * Receives @msg from @sock, passing through LSM. Returns the total number
1096 int sock_recvmsg(struct socket *sock, struct msghdr *msg, int flags)
1098 int err = security_socket_recvmsg(sock, msg, msg_data_left(msg), flags);
1100 return err ?: sock_recvmsg_nosec(sock, msg, flags);
1107 * @msg: Received message
1113 * On return the msg structure contains the scatter/gather array passed in the
1120 int kernel_recvmsg(struct socket *sock, struct msghdr *msg,
1123 msg->msg_control_is_user = false;
1124 iov_iter_kvec(&msg->msg_iter, ITER_DEST, vec, num, size);
1125 return sock_recvmsg(sock, msg, flags);
1157 struct msghdr msg = {.msg_iter = *to,
1162 msg.msg_flags = MSG_DONTWAIT;
1170 res = sock_recvmsg(sock, &msg, msg.msg_flags);
1171 *to = msg.msg_iter;
1179 struct msghdr msg = {.msg_iter = *from,
1187 msg.msg_flags = MSG_DONTWAIT;
1190 msg.msg_flags |= MSG_EOR;
1193 msg.msg_flags |= MSG_NOSIGNAL;
1195 res = __sock_sendmsg(sock, &msg);
1196 *from = msg.msg_iter;
2215 struct msghdr msg;
2217 err = import_ubuf(ITER_SOURCE, buff, len, &msg.msg_iter);
2228 msg.msg_name = NULL;
2229 msg.msg_control = NULL;
2230 msg.msg_controllen = 0;
2231 msg.msg_namelen = 0;
2232 msg.msg_ubuf = NULL;
2237 msg.msg_name = (struct sockaddr *)&address;
2238 msg.msg_namelen = addr_len;
2243 msg.msg_flags = flags;
2244 return __sock_sendmsg(sock, &msg);
2273 struct msghdr msg = {
2280 err = import_ubuf(ITER_DEST, ubuf, size, &msg.msg_iter);
2294 err = sock_recvmsg(sock, &msg, flags);
2298 msg.msg_namelen, addr, addr_len);
2497 #define COMPAT_MSG(msg, member) ((MSG_CMSG_COMPAT & flags) ? &msg##_compat->member : &msg->member)
2498 #define COMPAT_NAMELEN(msg) COMPAT_MSG(msg, msg_namelen)
2499 #define COMPAT_FLAGS(msg) COMPAT_MSG(msg, msg_flags)
2507 struct user_msghdr *msg,
2514 kmsg->msg_control_user = msg->msg_control;
2515 kmsg->msg_controllen = msg->msg_controllen;
2516 kmsg->msg_flags = msg->msg_flags;
2518 kmsg->msg_namelen = msg->msg_namelen;
2519 if (!msg->msg_name)
2529 *save_addr = msg->msg_name;
2531 if (msg->msg_name && kmsg->msg_namelen) {
2533 err = move_addr_to_kernel(msg->msg_name,
2544 if (msg->msg_iovlen > UIO_MAXIOV)
2557 struct user_msghdr msg;
2560 if (copy_from_user(&msg, umsg, sizeof(*umsg)))
2563 err = __copy_msghdr(kmsg, &msg, save_addr);
2568 msg.msg_iov, msg.msg_iovlen,
2649 static int sendmsg_copy_msghdr(struct msghdr *msg,
2659 err = get_compat_msghdr(msg, msg_compat, NULL, iov);
2661 err = copy_msghdr_from_user(msg, umsg, NULL, iov);
2669 static int ___sys_sendmsg(struct socket *sock, struct user_msghdr __user *msg,
2680 err = sendmsg_copy_msghdr(msg_sys, msg, flags, &iov);
2693 long __sys_sendmsg_sock(struct socket *sock, struct msghdr *msg,
2696 return ____sys_sendmsg(sock, msg, flags, NULL, 0);
2699 long __sys_sendmsg(int fd, struct user_msghdr __user *msg, unsigned int flags,
2716 return ___sys_sendmsg(sock, msg, &msg_sys, flags, NULL, 0);
2719 SYSCALL_DEFINE3(sendmsg, int, fd, struct user_msghdr __user *, msg, unsigned int, flags)
2721 return __sys_sendmsg(fd, msg, flags, true);
2803 static int recvmsg_copy_msghdr(struct msghdr *msg,
2814 err = get_compat_msghdr(msg, msg_compat, uaddr, iov);
2816 err = copy_msghdr_from_user(msg, umsg, uaddr, iov);
2825 struct user_msghdr __user *msg,
2830 (struct compat_msghdr __user *) msg;
2831 int __user *uaddr_len = COMPAT_NAMELEN(msg);
2864 COMPAT_FLAGS(msg));
2872 &msg->msg_controllen);
2880 static int ___sys_recvmsg(struct socket *sock, struct user_msghdr __user *msg,
2888 err = recvmsg_copy_msghdr(msg_sys, msg, flags, &uaddr, &iov);
2892 err = ____sys_recvmsg(sock, msg_sys, msg, uaddr, flags, nosec);
2901 long __sys_recvmsg_sock(struct socket *sock, struct msghdr *msg,
2905 return ____sys_recvmsg(sock, msg, umsg, uaddr, flags, 0);
2908 long __sys_recvmsg(int fd, struct user_msghdr __user *msg, unsigned int flags,
2925 return ___sys_recvmsg(sock, msg, &msg_sys, flags, 0);
2928 SYSCALL_DEFINE3(recvmsg, int, fd, struct user_msghdr __user *, msg,
2931 return __sys_recvmsg(fd, msg, flags, true);