summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorHaishuang Yan <yanhaishuang@cmss.chinamobile.com>2019-07-25 11:07:56 +0800
committerDavid S. Miller <davem@davemloft.net>2019-07-25 17:23:40 -0700
commit47d858d0bdcd47cc1c6c9eeca91b091dd9e55637 (patch)
treed8a30acde38bd0369ad3471e7b8d199864430eb0 /net
parent53db1cced401e4c65d49edf198e00daa9fc837e6 (diff)
downloadlinux-0-day-47d858d0bdcd47cc1c6c9eeca91b091dd9e55637.tar.gz
linux-0-day-47d858d0bdcd47cc1c6c9eeca91b091dd9e55637.tar.xz
ipip: validate header length in ipip_tunnel_xmit
We need the same checks introduced by commit cb9f1b783850 ("ip: validate header length on virtual device xmit") for ipip tunnel. Fixes: cb9f1b783850b ("ip: validate header length on virtual device xmit") Signed-off-by: Haishuang Yan <yanhaishuang@cmss.chinamobile.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r--net/ipv4/ipip.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/ipv4/ipip.c b/net/ipv4/ipip.c
index 43adfc1641bac..2f01cf6fa0def 100644
--- a/net/ipv4/ipip.c
+++ b/net/ipv4/ipip.c
@@ -275,6 +275,9 @@ static netdev_tx_t ipip_tunnel_xmit(struct sk_buff *skb,
const struct iphdr *tiph = &tunnel->parms.iph;
u8 ipproto;
+ if (!pskb_inet_may_pull(skb))
+ goto tx_error;
+
switch (skb->protocol) {
case htons(ETH_P_IP):
ipproto = IPPROTO_IPIP;