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

Commit bf581759 authored by Oussama Ghorbel's avatar Oussama Ghorbel Committed by David S. Miller
Browse files

ipv6: Initialize ip6_tnl.hlen in gre tunnel even if no route is found



The ip6_tnl.hlen (gre and ipv6 headers length) is independent from the
outgoing interface, so it would be better to initialize it even when no
route is found, otherwise its value will be zero.
While I'm not sure if this could happen in real life, but doing that
will avoid to call the skb_push function with a zero in ip6gre_header
function.

Suggested-by: default avatarHannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: default avatarOussama Ghorbel <ou.ghorbel@gmail.com>
Acked-by: default avatarHannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent ff704050
Loading
Loading
Loading
Loading
+1 −2
Original line number Original line Diff line number Diff line
@@ -976,6 +976,7 @@ static void ip6gre_tnl_link_config(struct ip6_tnl *t, int set_mtu)
		if (t->parms.o_flags&GRE_SEQ)
		if (t->parms.o_flags&GRE_SEQ)
			addend += 4;
			addend += 4;
	}
	}
	t->hlen = addend;


	if (p->flags & IP6_TNL_F_CAP_XMIT) {
	if (p->flags & IP6_TNL_F_CAP_XMIT) {
		int strict = (ipv6_addr_type(&p->raddr) &
		int strict = (ipv6_addr_type(&p->raddr) &
@@ -1002,8 +1003,6 @@ static void ip6gre_tnl_link_config(struct ip6_tnl *t, int set_mtu)
		}
		}
		ip6_rt_put(rt);
		ip6_rt_put(rt);
	}
	}

	t->hlen = addend;
}
}


static int ip6gre_tnl_change(struct ip6_tnl *t,
static int ip6gre_tnl_change(struct ip6_tnl *t,