diff options
author | Tim Smith <tim@electronghost.co.uk> | 2014-01-26 12:39:31 +0100 |
---|---|---|
committer | David Howells <dhowells@redhat.com> | 2014-01-26 12:45:04 +0100 |
commit | 1ea427359dde1573815e19c411ce08fdf0c42cfe (patch) | |
tree | dc194ef6de1b1ca893cb308de331f044c381c840 /net/rxrpc/ar-recvmsg.c | |
parent | af_rxrpc: Avoid setting up double-free on checksum error (diff) | |
download | linux-1ea427359dde1573815e19c411ce08fdf0c42cfe.tar.xz linux-1ea427359dde1573815e19c411ce08fdf0c42cfe.zip |
af_rxrpc: Handle frames delivered from another VM
On input, CHECKSUM_PARTIAL should be treated the same way as
CHECKSUM_UNNECESSARY. See include/linux/skbuff.h
Signed-off-by: Tim Smith <tim@electronghost.co.uk>
Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'net/rxrpc/ar-recvmsg.c')
-rw-r--r-- | net/rxrpc/ar-recvmsg.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/rxrpc/ar-recvmsg.c b/net/rxrpc/ar-recvmsg.c index 64cba2e35156..34b5490dde65 100644 --- a/net/rxrpc/ar-recvmsg.c +++ b/net/rxrpc/ar-recvmsg.c @@ -180,7 +180,8 @@ int rxrpc_recvmsg(struct kiocb *iocb, struct socket *sock, if (copy > len - copied) copy = len - copied; - if (skb->ip_summed == CHECKSUM_UNNECESSARY) { + if (skb->ip_summed == CHECKSUM_UNNECESSARY || + skb->ip_summed == CHECKSUM_PARTIAL) { ret = skb_copy_datagram_iovec(skb, offset, msg->msg_iov, copy); } else { |