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

Commit b45e9189 authored by David S. Miller's avatar David S. Miller
Browse files

[IPV6]: Fix ipv6 address fetching in raw6_icmp_error().



Fixes kernel bugzilla 10437

Based almost entirely upon a patch by Dmitry Butskoy.

When deciding what raw sockets to deliver the ICMPv6
to, we should use the addresses in the ICMPv6 quoted
IPV6 header, not the top-level one.

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 2ed9926e
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -372,8 +372,10 @@ void raw6_icmp_error(struct sk_buff *skb, int nexthdr,
	read_lock(&raw_v6_hashinfo.lock);
	sk = sk_head(&raw_v6_hashinfo.ht[hash]);
	if (sk != NULL) {
		saddr = &ipv6_hdr(skb)->saddr;
		daddr = &ipv6_hdr(skb)->daddr;
		struct ipv6hdr *hdr = (struct ipv6hdr *) skb->data;

		saddr = &hdr->saddr;
		daddr = &hdr->daddr;
		net = skb->dev->nd_net;

		while ((sk = __raw_v6_lookup(net, sk, nexthdr, saddr, daddr,