new helper: memcpy_from_msg()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
227158db16
commit
6ce8e9ce59
36 changed files with 57 additions and 57 deletions
crypto
drivers
include
net
appletalk
ax25
bluetooth
caif
can
dccp
decnet
ieee802154
ipv4
irda
iucv
key
l2tp
llc
netlink
netrom
nfc
packet
phonet
rose
sctp
x25
|
@ -298,9 +298,9 @@ static int skcipher_sendmsg(struct kiocb *unused, struct socket *sock,
|
|||
len = min_t(unsigned long, len,
|
||||
PAGE_SIZE - sg->offset - sg->length);
|
||||
|
||||
err = memcpy_fromiovec(page_address(sg_page(sg)) +
|
||||
sg->offset + sg->length,
|
||||
msg->msg_iov, len);
|
||||
err = memcpy_from_msg(page_address(sg_page(sg)) +
|
||||
sg->offset + sg->length,
|
||||
msg, len);
|
||||
if (err)
|
||||
goto unlock;
|
||||
|
||||
|
@ -337,8 +337,8 @@ static int skcipher_sendmsg(struct kiocb *unused, struct socket *sock,
|
|||
if (!sg_page(sg + i))
|
||||
goto unlock;
|
||||
|
||||
err = memcpy_fromiovec(page_address(sg_page(sg + i)),
|
||||
msg->msg_iov, plen);
|
||||
err = memcpy_from_msg(page_address(sg_page(sg + i)),
|
||||
msg, plen);
|
||||
if (err) {
|
||||
__free_page(sg_page(sg + i));
|
||||
sg_assign_page(sg + i, NULL);
|
||||
|
|
|
@ -203,7 +203,7 @@ mISDN_sock_sendmsg(struct kiocb *iocb, struct socket *sock,
|
|||
if (!skb)
|
||||
goto done;
|
||||
|
||||
if (memcpy_fromiovec(skb_put(skb, len), msg->msg_iov, len)) {
|
||||
if (memcpy_from_msg(skb_put(skb, len), msg, len)) {
|
||||
err = -EFAULT;
|
||||
goto done;
|
||||
}
|
||||
|
|
|
@ -869,7 +869,7 @@ static int pppoe_sendmsg(struct kiocb *iocb, struct socket *sock,
|
|||
ph = (struct pppoe_hdr *)skb_put(skb, total_len + sizeof(struct pppoe_hdr));
|
||||
start = (char *)&ph->tag[0];
|
||||
|
||||
error = memcpy_fromiovec(start, m->msg_iov, total_len);
|
||||
error = memcpy_from_msg(start, m, total_len);
|
||||
if (error < 0) {
|
||||
kfree_skb(skb);
|
||||
goto end;
|
||||
|
|
|
@ -2687,6 +2687,11 @@ int skb_ensure_writable(struct sk_buff *skb, int write_len);
|
|||
int skb_vlan_pop(struct sk_buff *skb);
|
||||
int skb_vlan_push(struct sk_buff *skb, __be16 vlan_proto, u16 vlan_tci);
|
||||
|
||||
static inline int memcpy_from_msg(void *data, struct msghdr *msg, int len)
|
||||
{
|
||||
return memcpy_fromiovec(data, msg->msg_iov, len);
|
||||
}
|
||||
|
||||
struct skb_checksum_ops {
|
||||
__wsum (*update)(const void *mem, int len, __wsum wsum);
|
||||
__wsum (*combine)(__wsum csum, __wsum csum2, int offset, int len);
|
||||
|
|
|
@ -219,7 +219,7 @@ struct sctp_chunk *sctp_make_abort_no_data(const struct sctp_association *,
|
|||
const struct sctp_chunk *,
|
||||
__u32 tsn);
|
||||
struct sctp_chunk *sctp_make_abort_user(const struct sctp_association *,
|
||||
const struct msghdr *, size_t msg_len);
|
||||
struct msghdr *, size_t msg_len);
|
||||
struct sctp_chunk *sctp_make_abort_violation(const struct sctp_association *,
|
||||
const struct sctp_chunk *,
|
||||
const __u8 *,
|
||||
|
|
|
@ -1659,7 +1659,7 @@ static int atalk_sendmsg(struct kiocb *iocb, struct socket *sock, struct msghdr
|
|||
|
||||
SOCK_DEBUG(sk, "SK %p: Copy user data (%Zd bytes).\n", sk, len);
|
||||
|
||||
err = memcpy_fromiovec(skb_put(skb, len), msg->msg_iov, len);
|
||||
err = memcpy_from_msg(skb_put(skb, len), msg, len);
|
||||
if (err) {
|
||||
kfree_skb(skb);
|
||||
err = -EFAULT;
|
||||
|
|
|
@ -1549,7 +1549,7 @@ static int ax25_sendmsg(struct kiocb *iocb, struct socket *sock,
|
|||
skb_reserve(skb, size - len);
|
||||
|
||||
/* User data follows immediately after the AX.25 data */
|
||||
if (memcpy_fromiovec(skb_put(skb, len), msg->msg_iov, len)) {
|
||||
if (memcpy_from_msg(skb_put(skb, len), msg, len)) {
|
||||
err = -EFAULT;
|
||||
kfree_skb(skb);
|
||||
goto out;
|
||||
|
|
|
@ -947,7 +947,7 @@ static int hci_sock_sendmsg(struct kiocb *iocb, struct socket *sock,
|
|||
if (!skb)
|
||||
goto done;
|
||||
|
||||
if (memcpy_fromiovec(skb_put(skb, len), msg->msg_iov, len)) {
|
||||
if (memcpy_from_msg(skb_put(skb, len), msg, len)) {
|
||||
err = -EFAULT;
|
||||
goto drop;
|
||||
}
|
||||
|
|
|
@ -5767,7 +5767,7 @@ int mgmt_control(struct sock *sk, struct msghdr *msg, size_t msglen)
|
|||
if (!buf)
|
||||
return -ENOMEM;
|
||||
|
||||
if (memcpy_fromiovec(buf, msg->msg_iov, msglen)) {
|
||||
if (memcpy_from_msg(buf, msg, msglen)) {
|
||||
err = -EFAULT;
|
||||
goto done;
|
||||
}
|
||||
|
|
|
@ -588,7 +588,7 @@ static int rfcomm_sock_sendmsg(struct kiocb *iocb, struct socket *sock,
|
|||
}
|
||||
skb_reserve(skb, RFCOMM_SKB_HEAD_RESERVE);
|
||||
|
||||
err = memcpy_fromiovec(skb_put(skb, size), msg->msg_iov, size);
|
||||
err = memcpy_from_msg(skb_put(skb, size), msg, size);
|
||||
if (err) {
|
||||
kfree_skb(skb);
|
||||
if (sent == 0)
|
||||
|
|
|
@ -285,7 +285,7 @@ static int sco_send_frame(struct sock *sk, struct msghdr *msg, int len)
|
|||
if (!skb)
|
||||
return err;
|
||||
|
||||
if (memcpy_fromiovec(skb_put(skb, len), msg->msg_iov, len)) {
|
||||
if (memcpy_from_msg(skb_put(skb, len), msg, len)) {
|
||||
kfree_skb(skb);
|
||||
return -EFAULT;
|
||||
}
|
||||
|
|
|
@ -566,7 +566,7 @@ static int caif_seqpkt_sendmsg(struct kiocb *kiocb, struct socket *sock,
|
|||
|
||||
skb_reserve(skb, cf_sk->headroom);
|
||||
|
||||
ret = memcpy_fromiovec(skb_put(skb, len), msg->msg_iov, len);
|
||||
ret = memcpy_from_msg(skb_put(skb, len), msg, len);
|
||||
|
||||
if (ret)
|
||||
goto err;
|
||||
|
@ -641,7 +641,7 @@ static int caif_stream_sendmsg(struct kiocb *kiocb, struct socket *sock,
|
|||
*/
|
||||
size = min_t(int, size, skb_tailroom(skb));
|
||||
|
||||
err = memcpy_fromiovec(skb_put(skb, size), msg->msg_iov, size);
|
||||
err = memcpy_from_msg(skb_put(skb, size), msg, size);
|
||||
if (err) {
|
||||
kfree_skb(skb);
|
||||
goto out_err;
|
||||
|
|
|
@ -858,8 +858,7 @@ static int bcm_tx_setup(struct bcm_msg_head *msg_head, struct msghdr *msg,
|
|||
|
||||
/* update can_frames content */
|
||||
for (i = 0; i < msg_head->nframes; i++) {
|
||||
err = memcpy_fromiovec((u8 *)&op->frames[i],
|
||||
msg->msg_iov, CFSIZ);
|
||||
err = memcpy_from_msg((u8 *)&op->frames[i], msg, CFSIZ);
|
||||
|
||||
if (op->frames[i].can_dlc > 8)
|
||||
err = -EINVAL;
|
||||
|
@ -894,8 +893,7 @@ static int bcm_tx_setup(struct bcm_msg_head *msg_head, struct msghdr *msg,
|
|||
op->frames = &op->sframe;
|
||||
|
||||
for (i = 0; i < msg_head->nframes; i++) {
|
||||
err = memcpy_fromiovec((u8 *)&op->frames[i],
|
||||
msg->msg_iov, CFSIZ);
|
||||
err = memcpy_from_msg((u8 *)&op->frames[i], msg, CFSIZ);
|
||||
|
||||
if (op->frames[i].can_dlc > 8)
|
||||
err = -EINVAL;
|
||||
|
@ -1024,9 +1022,8 @@ static int bcm_rx_setup(struct bcm_msg_head *msg_head, struct msghdr *msg,
|
|||
|
||||
if (msg_head->nframes) {
|
||||
/* update can_frames content */
|
||||
err = memcpy_fromiovec((u8 *)op->frames,
|
||||
msg->msg_iov,
|
||||
msg_head->nframes * CFSIZ);
|
||||
err = memcpy_from_msg((u8 *)op->frames, msg,
|
||||
msg_head->nframes * CFSIZ);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
|
@ -1072,8 +1069,8 @@ static int bcm_rx_setup(struct bcm_msg_head *msg_head, struct msghdr *msg,
|
|||
}
|
||||
|
||||
if (msg_head->nframes) {
|
||||
err = memcpy_fromiovec((u8 *)op->frames, msg->msg_iov,
|
||||
msg_head->nframes * CFSIZ);
|
||||
err = memcpy_from_msg((u8 *)op->frames, msg,
|
||||
msg_head->nframes * CFSIZ);
|
||||
if (err < 0) {
|
||||
if (op->frames != &op->sframe)
|
||||
kfree(op->frames);
|
||||
|
@ -1209,7 +1206,7 @@ static int bcm_tx_send(struct msghdr *msg, int ifindex, struct sock *sk)
|
|||
|
||||
can_skb_reserve(skb);
|
||||
|
||||
err = memcpy_fromiovec(skb_put(skb, CFSIZ), msg->msg_iov, CFSIZ);
|
||||
err = memcpy_from_msg(skb_put(skb, CFSIZ), msg, CFSIZ);
|
||||
if (err < 0) {
|
||||
kfree_skb(skb);
|
||||
return err;
|
||||
|
@ -1285,7 +1282,7 @@ static int bcm_sendmsg(struct kiocb *iocb, struct socket *sock,
|
|||
|
||||
/* read message head information */
|
||||
|
||||
ret = memcpy_fromiovec((u8 *)&msg_head, msg->msg_iov, MHSIZ);
|
||||
ret = memcpy_from_msg((u8 *)&msg_head, msg, MHSIZ);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
|
|
|
@ -703,7 +703,7 @@ static int raw_sendmsg(struct kiocb *iocb, struct socket *sock,
|
|||
can_skb_reserve(skb);
|
||||
can_skb_prv(skb)->ifindex = dev->ifindex;
|
||||
|
||||
err = memcpy_fromiovec(skb_put(skb, size), msg->msg_iov, size);
|
||||
err = memcpy_from_msg(skb_put(skb, size), msg, size);
|
||||
if (err < 0)
|
||||
goto free_skb;
|
||||
|
||||
|
|
|
@ -781,7 +781,7 @@ int dccp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
|
|||
goto out_release;
|
||||
|
||||
skb_reserve(skb, sk->sk_prot->max_header);
|
||||
rc = memcpy_fromiovec(skb_put(skb, len), msg->msg_iov, len);
|
||||
rc = memcpy_from_msg(skb_put(skb, len), msg, len);
|
||||
if (rc != 0)
|
||||
goto out_discard;
|
||||
|
||||
|
|
|
@ -2032,7 +2032,7 @@ static int dn_sendmsg(struct kiocb *iocb, struct socket *sock,
|
|||
|
||||
skb_reserve(skb, 64 + DN_MAX_NSP_DATA_HEADER);
|
||||
|
||||
if (memcpy_fromiovec(skb_put(skb, len), msg->msg_iov, len)) {
|
||||
if (memcpy_from_msg(skb_put(skb, len), msg, len)) {
|
||||
err = -EFAULT;
|
||||
goto out;
|
||||
}
|
||||
|
|
|
@ -276,7 +276,7 @@ static int dgram_sendmsg(struct kiocb *iocb, struct sock *sk,
|
|||
if (err < 0)
|
||||
goto out_skb;
|
||||
|
||||
err = memcpy_fromiovec(skb_put(skb, size), msg->msg_iov, size);
|
||||
err = memcpy_from_msg(skb_put(skb, size), msg, size);
|
||||
if (err < 0)
|
||||
goto out_skb;
|
||||
|
||||
|
|
|
@ -150,7 +150,7 @@ static int raw_sendmsg(struct kiocb *iocb, struct sock *sk,
|
|||
skb_reset_mac_header(skb);
|
||||
skb_reset_network_header(skb);
|
||||
|
||||
err = memcpy_fromiovec(skb_put(skb, size), msg->msg_iov, size);
|
||||
err = memcpy_from_msg(skb_put(skb, size), msg, size);
|
||||
if (err < 0)
|
||||
goto out_skb;
|
||||
|
||||
|
|
|
@ -660,7 +660,7 @@ int ping_common_sendmsg(int family, struct msghdr *msg, size_t len,
|
|||
* Fetch the ICMP header provided by the userland.
|
||||
* iovec is modified! The ICMP header is consumed.
|
||||
*/
|
||||
if (memcpy_fromiovec(user_icmph, msg->msg_iov, icmph_len))
|
||||
if (memcpy_from_msg(user_icmph, msg, icmph_len))
|
||||
return -EFAULT;
|
||||
|
||||
if (family == AF_INET) {
|
||||
|
|
|
@ -4368,7 +4368,7 @@ int tcp_send_rcvq(struct sock *sk, struct msghdr *msg, size_t size)
|
|||
if (tcp_try_rmem_schedule(sk, skb, skb->truesize))
|
||||
goto err_free;
|
||||
|
||||
if (memcpy_fromiovec(skb_put(skb, size), msg->msg_iov, size))
|
||||
if (memcpy_from_msg(skb_put(skb, size), msg, size))
|
||||
goto err_free;
|
||||
|
||||
TCP_SKB_CB(skb)->seq = tcp_sk(sk)->rcv_nxt;
|
||||
|
|
|
@ -1319,7 +1319,7 @@ static int irda_sendmsg(struct kiocb *iocb, struct socket *sock,
|
|||
skb_reserve(skb, self->max_header_size + 16);
|
||||
skb_reset_transport_header(skb);
|
||||
skb_put(skb, len);
|
||||
err = memcpy_fromiovec(skb_transport_header(skb), msg->msg_iov, len);
|
||||
err = memcpy_from_msg(skb_transport_header(skb), msg, len);
|
||||
if (err) {
|
||||
kfree_skb(skb);
|
||||
goto out_err;
|
||||
|
@ -1569,7 +1569,7 @@ static int irda_sendmsg_dgram(struct kiocb *iocb, struct socket *sock,
|
|||
|
||||
pr_debug("%s(), appending user data\n", __func__);
|
||||
skb_put(skb, len);
|
||||
err = memcpy_fromiovec(skb_transport_header(skb), msg->msg_iov, len);
|
||||
err = memcpy_from_msg(skb_transport_header(skb), msg, len);
|
||||
if (err) {
|
||||
kfree_skb(skb);
|
||||
goto out;
|
||||
|
@ -1678,7 +1678,7 @@ static int irda_sendmsg_ultra(struct kiocb *iocb, struct socket *sock,
|
|||
|
||||
pr_debug("%s(), appending user data\n", __func__);
|
||||
skb_put(skb, len);
|
||||
err = memcpy_fromiovec(skb_transport_header(skb), msg->msg_iov, len);
|
||||
err = memcpy_from_msg(skb_transport_header(skb), msg, len);
|
||||
if (err) {
|
||||
kfree_skb(skb);
|
||||
goto out;
|
||||
|
|
|
@ -1122,7 +1122,7 @@ static int iucv_sock_sendmsg(struct kiocb *iocb, struct socket *sock,
|
|||
}
|
||||
if (iucv->transport == AF_IUCV_TRANS_HIPER)
|
||||
skb_reserve(skb, sizeof(struct af_iucv_trans_hdr) + ETH_HLEN);
|
||||
if (memcpy_fromiovec(skb_put(skb, len), msg->msg_iov, len)) {
|
||||
if (memcpy_from_msg(skb_put(skb, len), msg, len)) {
|
||||
err = -EFAULT;
|
||||
goto fail;
|
||||
}
|
||||
|
|
|
@ -3611,7 +3611,7 @@ static int pfkey_sendmsg(struct kiocb *kiocb,
|
|||
goto out;
|
||||
|
||||
err = -EFAULT;
|
||||
if (memcpy_fromiovec(skb_put(skb,len), msg->msg_iov, len))
|
||||
if (memcpy_from_msg(skb_put(skb,len), msg, len))
|
||||
goto out;
|
||||
|
||||
hdr = pfkey_get_base_msg(skb, &err);
|
||||
|
|
|
@ -441,7 +441,7 @@ static int l2tp_ip_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *m
|
|||
*((__be32 *) skb_put(skb, 4)) = 0;
|
||||
|
||||
/* Copy user data into skb */
|
||||
rc = memcpy_fromiovec(skb_put(skb, len), msg->msg_iov, len);
|
||||
rc = memcpy_from_msg(skb_put(skb, len), msg, len);
|
||||
if (rc < 0) {
|
||||
kfree_skb(skb);
|
||||
goto error;
|
||||
|
|
|
@ -346,8 +346,7 @@ static int pppol2tp_sendmsg(struct kiocb *iocb, struct socket *sock, struct msgh
|
|||
skb_put(skb, 2);
|
||||
|
||||
/* Copy user data into skb */
|
||||
error = memcpy_fromiovec(skb_put(skb, total_len), m->msg_iov,
|
||||
total_len);
|
||||
error = memcpy_from_msg(skb_put(skb, total_len), m, total_len);
|
||||
if (error < 0) {
|
||||
kfree_skb(skb);
|
||||
goto error_put_sess_tun;
|
||||
|
|
|
@ -921,7 +921,7 @@ static int llc_ui_sendmsg(struct kiocb *iocb, struct socket *sock,
|
|||
skb->dev = llc->dev;
|
||||
skb->protocol = llc_proto_type(addr->sllc_arphrd);
|
||||
skb_reserve(skb, hdrlen);
|
||||
rc = memcpy_fromiovec(skb_put(skb, copied), msg->msg_iov, copied);
|
||||
rc = memcpy_from_msg(skb_put(skb, copied), msg, copied);
|
||||
if (rc)
|
||||
goto out;
|
||||
if (sk->sk_type == SOCK_DGRAM || addr->sllc_ua) {
|
||||
|
|
|
@ -2325,7 +2325,7 @@ static int netlink_sendmsg(struct kiocb *kiocb, struct socket *sock,
|
|||
NETLINK_CB(skb).flags = netlink_skb_flags;
|
||||
|
||||
err = -EFAULT;
|
||||
if (memcpy_fromiovec(skb_put(skb, len), msg->msg_iov, len)) {
|
||||
if (memcpy_from_msg(skb_put(skb, len), msg, len)) {
|
||||
kfree_skb(skb);
|
||||
goto out;
|
||||
}
|
||||
|
|
|
@ -1113,7 +1113,7 @@ static int nr_sendmsg(struct kiocb *iocb, struct socket *sock,
|
|||
skb_put(skb, len);
|
||||
|
||||
/* User data follows immediately after the NET/ROM transport header */
|
||||
if (memcpy_fromiovec(skb_transport_header(skb), msg->msg_iov, len)) {
|
||||
if (memcpy_from_msg(skb_transport_header(skb), msg, len)) {
|
||||
kfree_skb(skb);
|
||||
err = -EFAULT;
|
||||
goto out;
|
||||
|
|
|
@ -665,7 +665,7 @@ int nfc_llcp_send_i_frame(struct nfc_llcp_sock *sock,
|
|||
if (msg_data == NULL)
|
||||
return -ENOMEM;
|
||||
|
||||
if (memcpy_fromiovec(msg_data, msg->msg_iov, len)) {
|
||||
if (memcpy_from_msg(msg_data, msg, len)) {
|
||||
kfree(msg_data);
|
||||
return -EFAULT;
|
||||
}
|
||||
|
@ -731,7 +731,7 @@ int nfc_llcp_send_ui_frame(struct nfc_llcp_sock *sock, u8 ssap, u8 dsap,
|
|||
if (msg_data == NULL)
|
||||
return -ENOMEM;
|
||||
|
||||
if (memcpy_fromiovec(msg_data, msg->msg_iov, len)) {
|
||||
if (memcpy_from_msg(msg_data, msg, len)) {
|
||||
kfree(msg_data);
|
||||
return -EFAULT;
|
||||
}
|
||||
|
|
|
@ -231,7 +231,7 @@ static int rawsock_sendmsg(struct kiocb *iocb, struct socket *sock,
|
|||
if (skb == NULL)
|
||||
return rc;
|
||||
|
||||
rc = memcpy_fromiovec(skb_put(skb, len), msg->msg_iov, len);
|
||||
rc = memcpy_from_msg(skb_put(skb, len), msg, len);
|
||||
if (rc < 0) {
|
||||
kfree_skb(skb);
|
||||
return rc;
|
||||
|
|
|
@ -1676,7 +1676,7 @@ static int packet_sendmsg_spkt(struct kiocb *iocb, struct socket *sock,
|
|||
if (len < hhlen)
|
||||
skb_reset_network_header(skb);
|
||||
}
|
||||
err = memcpy_fromiovec(skb_put(skb, len), msg->msg_iov, len);
|
||||
err = memcpy_from_msg(skb_put(skb, len), msg, len);
|
||||
if (err)
|
||||
goto out_free;
|
||||
goto retry;
|
||||
|
@ -2446,8 +2446,7 @@ static int packet_snd(struct socket *sock, struct msghdr *msg, size_t len)
|
|||
|
||||
len -= vnet_hdr_len;
|
||||
|
||||
err = memcpy_fromiovec((void *)&vnet_hdr, msg->msg_iov,
|
||||
vnet_hdr_len);
|
||||
err = memcpy_from_msg((void *)&vnet_hdr, msg, vnet_hdr_len);
|
||||
if (err < 0)
|
||||
goto out_unlock;
|
||||
|
||||
|
|
|
@ -109,7 +109,7 @@ static int pn_sendmsg(struct kiocb *iocb, struct sock *sk,
|
|||
return err;
|
||||
skb_reserve(skb, MAX_PHONET_HEADER);
|
||||
|
||||
err = memcpy_fromiovec((void *)skb_put(skb, len), msg->msg_iov, len);
|
||||
err = memcpy_from_msg((void *)skb_put(skb, len), msg, len);
|
||||
if (err < 0) {
|
||||
kfree_skb(skb);
|
||||
return err;
|
||||
|
|
|
@ -1141,7 +1141,7 @@ static int pep_sendmsg(struct kiocb *iocb, struct sock *sk,
|
|||
return err;
|
||||
|
||||
skb_reserve(skb, MAX_PHONET_HEADER + 3 + pn->aligned);
|
||||
err = memcpy_fromiovec(skb_put(skb, len), msg->msg_iov, len);
|
||||
err = memcpy_from_msg(skb_put(skb, len), msg, len);
|
||||
if (err < 0)
|
||||
goto outfree;
|
||||
|
||||
|
|
|
@ -1121,7 +1121,7 @@ static int rose_sendmsg(struct kiocb *iocb, struct socket *sock,
|
|||
skb_reset_transport_header(skb);
|
||||
skb_put(skb, len);
|
||||
|
||||
err = memcpy_fromiovec(skb_transport_header(skb), msg->msg_iov, len);
|
||||
err = memcpy_from_msg(skb_transport_header(skb), msg, len);
|
||||
if (err) {
|
||||
kfree_skb(skb);
|
||||
return err;
|
||||
|
|
|
@ -1001,7 +1001,7 @@ struct sctp_chunk *sctp_make_abort_no_data(
|
|||
|
||||
/* Helper to create ABORT with a SCTP_ERROR_USER_ABORT error. */
|
||||
struct sctp_chunk *sctp_make_abort_user(const struct sctp_association *asoc,
|
||||
const struct msghdr *msg,
|
||||
struct msghdr *msg,
|
||||
size_t paylen)
|
||||
{
|
||||
struct sctp_chunk *retval;
|
||||
|
@ -1018,7 +1018,7 @@ struct sctp_chunk *sctp_make_abort_user(const struct sctp_association *asoc,
|
|||
if (!payload)
|
||||
goto err_payload;
|
||||
|
||||
err = memcpy_fromiovec(payload, msg->msg_iov, paylen);
|
||||
err = memcpy_from_msg(payload, msg, paylen);
|
||||
if (err < 0)
|
||||
goto err_copy;
|
||||
}
|
||||
|
|
|
@ -1170,7 +1170,7 @@ static int x25_sendmsg(struct kiocb *iocb, struct socket *sock,
|
|||
skb_reset_transport_header(skb);
|
||||
skb_put(skb, len);
|
||||
|
||||
rc = memcpy_fromiovec(skb_transport_header(skb), msg->msg_iov, len);
|
||||
rc = memcpy_from_msg(skb_transport_header(skb), msg, len);
|
||||
if (rc)
|
||||
goto out_kfree_skb;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue