diff options
| -rw-r--r-- | net/ipv4/raw.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c index 0bb68df5055d..2c9d252072a2 100644 --- a/net/ipv4/raw.c +++ b/net/ipv4/raw.c | |||
| @@ -337,7 +337,7 @@ int raw_rcv(struct sock *sk, struct sk_buff *skb) | |||
| 337 | } | 337 | } |
| 338 | 338 | ||
| 339 | static int raw_send_hdrinc(struct sock *sk, struct flowi4 *fl4, | 339 | static int raw_send_hdrinc(struct sock *sk, struct flowi4 *fl4, |
| 340 | void *from, size_t length, | 340 | struct msghdr *msg, size_t length, |
| 341 | struct rtable **rtp, | 341 | struct rtable **rtp, |
| 342 | unsigned int flags) | 342 | unsigned int flags) |
| 343 | { | 343 | { |
| @@ -382,7 +382,7 @@ static int raw_send_hdrinc(struct sock *sk, struct flowi4 *fl4, | |||
| 382 | 382 | ||
| 383 | skb->transport_header = skb->network_header; | 383 | skb->transport_header = skb->network_header; |
| 384 | err = -EFAULT; | 384 | err = -EFAULT; |
| 385 | if (memcpy_fromiovecend((void *)iph, from, 0, length)) | 385 | if (memcpy_fromiovecend((void *)iph, msg->msg_iter.iov, 0, length)) |
| 386 | goto error_free; | 386 | goto error_free; |
| 387 | 387 | ||
| 388 | iphlen = iph->ihl * 4; | 388 | iphlen = iph->ihl * 4; |
| @@ -625,8 +625,7 @@ static int raw_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg, | |||
| 625 | back_from_confirm: | 625 | back_from_confirm: |
| 626 | 626 | ||
| 627 | if (inet->hdrincl) | 627 | if (inet->hdrincl) |
| 628 | /* XXX: stripping const */ | 628 | err = raw_send_hdrinc(sk, &fl4, msg, len, |
| 629 | err = raw_send_hdrinc(sk, &fl4, (struct iovec *)msg->msg_iter.iov, len, | ||
| 630 | &rt, msg->msg_flags); | 629 | &rt, msg->msg_flags); |
| 631 | 630 | ||
| 632 | else { | 631 | else { |
