Unverified Commit d6a9ab64 authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!8629 erspan: make sure erspan_base_hdr is present in skb->head

parents 3a72ab4d 052d6664
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -278,8 +278,13 @@ static int erspan_rcv(struct sk_buff *skb, struct tnl_ptk_info *tpi,
					  tpi->flags | TUNNEL_NO_KEY,
					  iph->saddr, iph->daddr, 0);
	} else {
		if (unlikely(!pskb_may_pull(skb,
					    gre_hdr_len + sizeof(*ershdr))))
			return PACKET_REJECT;

		ershdr = (struct erspan_base_hdr *)(skb->data + gre_hdr_len);
		ver = ershdr->ver;
		iph = ip_hdr(skb);
		tunnel = ip_tunnel_lookup(itn, skb->dev->ifindex,
					  tpi->flags | TUNNEL_KEY,
					  iph->saddr, iph->daddr, tpi->key);
+3 −0
Original line number Diff line number Diff line
@@ -533,6 +533,9 @@ static int ip6erspan_rcv(struct sk_buff *skb,
	struct ip6_tnl *tunnel;
	u8 ver;

	if (unlikely(!pskb_may_pull(skb, sizeof(*ershdr))))
		return PACKET_REJECT;

	ipv6h = ipv6_hdr(skb);
	ershdr = (struct erspan_base_hdr *)skb->data;
	ver = ershdr->ver;