diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2014-11-27 20:34:16 -0500 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2015-02-04 01:34:14 -0500 |
commit | cacdc7d2f9fa42e29b650e2879df42ea7d7833c1 (patch) | |
tree | 45f0ff4663f193b759b74a58a4a902d7667abada /net/ipv4 | |
parent | 2e90b1c45e34240eeeacab0b37d5f8f739462bdc (diff) | |
download | linux-stable-cacdc7d2f9fa42e29b650e2879df42ea7d7833c1.tar.gz linux-stable-cacdc7d2f9fa42e29b650e2879df42ea7d7833c1.tar.bz2 linux-stable-cacdc7d2f9fa42e29b650e2879df42ea7d7833c1.zip |
ip: stash a pointer to msghdr in struct ping_fakehdr
... instead of storing its ->mgs_iter.iov there
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'net/ipv4')
-rw-r--r-- | net/ipv4/ping.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/net/ipv4/ping.c b/net/ipv4/ping.c index 2a3720fb5a5f..9e15ba701401 100644 --- a/net/ipv4/ping.c +++ b/net/ipv4/ping.c @@ -602,14 +602,14 @@ int ping_getfrag(void *from, char *to, if (fraglen < sizeof(struct icmphdr)) BUG(); if (csum_partial_copy_fromiovecend(to + sizeof(struct icmphdr), - pfh->iov, 0, fraglen - sizeof(struct icmphdr), + pfh->msg->msg_iter.iov, 0, fraglen - sizeof(struct icmphdr), &pfh->wcheck)) return -EFAULT; } else if (offset < sizeof(struct icmphdr)) { BUG(); } else { if (csum_partial_copy_fromiovecend - (to, pfh->iov, offset - sizeof(struct icmphdr), + (to, pfh->msg->msg_iter.iov, offset - sizeof(struct icmphdr), fraglen, &pfh->wcheck)) return -EFAULT; } @@ -811,8 +811,7 @@ back_from_confirm: pfh.icmph.checksum = 0; pfh.icmph.un.echo.id = inet->inet_sport; pfh.icmph.un.echo.sequence = user_icmph.un.echo.sequence; - /* XXX: stripping const */ - pfh.iov = (struct iovec *)msg->msg_iter.iov; + pfh.msg = msg; pfh.wcheck = 0; pfh.family = AF_INET; |