Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d873f54a authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

Revert "net: ip_tunnel: make sure to pull inner header in ip_tunnel_rcv()"



This reverts commit ec6bb01e which is
commit b0ec2abf98267f14d032102551581c833b0659d3 upstream.

It breaks the Android kernel abi and can be brought back in the future
in an abi-safe way if it is really needed.

Bug: 161946584
Change-Id: I8848ef10b837f2943ad2e56b56fd64d759558a81
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
parent 960240ce
Loading
Loading
Loading
Loading
+1 −14
Original line number Diff line number Diff line
@@ -365,7 +365,7 @@ int ip_tunnel_rcv(struct ip_tunnel *tunnel, struct sk_buff *skb,
{
	struct pcpu_sw_netstats *tstats;
	const struct iphdr *iph = ip_hdr(skb);
	int nh, err;
	int err;

#ifdef CONFIG_NET_IPGRE_BROADCAST
	if (ipv4_is_multicast(iph->daddr)) {
@@ -391,21 +391,8 @@ int ip_tunnel_rcv(struct ip_tunnel *tunnel, struct sk_buff *skb,
		tunnel->i_seqno = ntohl(tpi->seq) + 1;
	}

	/* Save offset of outer header relative to skb->head,
	 * because we are going to reset the network header to the inner header
	 * and might change skb->head.
	 */
	nh = skb_network_header(skb) - skb->head;

	skb_set_network_header(skb, (tunnel->dev->type == ARPHRD_ETHER) ? ETH_HLEN : 0);

	if (!pskb_inet_may_pull(skb)) {
		DEV_STATS_INC(tunnel->dev, rx_length_errors);
		DEV_STATS_INC(tunnel->dev, rx_errors);
		goto drop;
	}
	iph = (struct iphdr *)(skb->head + nh);

	err = IP_ECN_decapsulate(iph, skb);
	if (unlikely(err)) {
		if (log_ecn_error)