summaryrefslogtreecommitdiffstats
path: root/net/rxrpc
diff options
context:
space:
mode:
authorTim Smith <tim@electronghost.co.uk>2014-01-26 12:39:31 +0100
committerDavid Howells <dhowells@redhat.com>2014-01-26 12:45:04 +0100
commit1ea427359dde1573815e19c411ce08fdf0c42cfe (patch)
treedc194ef6de1b1ca893cb308de331f044c381c840 /net/rxrpc
parentaf_rxrpc: Avoid setting up double-free on checksum error (diff)
downloadlinux-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')
-rw-r--r--net/rxrpc/ar-recvmsg.c3
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 {