Blob Blame History Raw
From: John Fastabend <john.fastabend@gmail.com>
Date: Mon, 13 May 2019 07:19:55 -0700
Subject: bpf: sockmap fix msg->sg.size account on ingress skb
Patch-mainline: v5.2-rc2
Git-commit: cabede8b4f2b746232aa25730a0b752de1cb82ca
References: bsc#1109837

When converting a skb to msg->sg we forget to set the size after the
latest ktls/tls code conversion. This patch can be reached by doing
a redir into ingress path from BPF skb sock recv hook. Then trying to
read the size fails.

Fix this by setting the size.

Fixes: 604326b41a6fb ("bpf, sockmap: convert to generic sk_msg interface")
Signed-off-by: John Fastabend <john.fastabend@gmail.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
---
 net/core/skmsg.c |    1 +
 1 file changed, 1 insertion(+)

--- a/net/core/skmsg.c
+++ b/net/core/skmsg.c
@@ -402,6 +402,7 @@ static int sk_psock_skb_ingress(struct s
 	sk_mem_charge(sk, skb->len);
 	copied = skb->len;
 	msg->sg.start = 0;
+	msg->sg.size = copied;
 	msg->sg.end = num_sge == MAX_MSG_FRAGS ? 0 : num_sge;
 	msg->skb = skb;