mirror of
https://github.com/torvalds/linux.git
synced 2024-11-13 23:51:39 +00:00
[IPV6]: Fix IPV6_RECVERR for connected raw sockets.
Based on patch from Dmitry Butskoy <buc@odusz.so-cdu.ru>. Closes: 10437 Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
This commit is contained in:
parent
876c7f4196
commit
05f175cdcf
@ -357,8 +357,10 @@ void raw6_icmp_error(struct sk_buff *skb, int nexthdr,
|
|||||||
read_lock(&raw_v6_hashinfo.lock);
|
read_lock(&raw_v6_hashinfo.lock);
|
||||||
sk = sk_head(&raw_v6_hashinfo.ht[hash]);
|
sk = sk_head(&raw_v6_hashinfo.ht[hash]);
|
||||||
if (sk != NULL) {
|
if (sk != NULL) {
|
||||||
saddr = &ipv6_hdr(skb)->saddr;
|
/* Note: ipv6_hdr(skb) != skb->data */
|
||||||
daddr = &ipv6_hdr(skb)->daddr;
|
struct ipv6hdr *ip6h = (struct ipv6hdr *)skb->data;
|
||||||
|
saddr = &ip6h->saddr;
|
||||||
|
daddr = &ip6h->daddr;
|
||||||
net = dev_net(skb->dev);
|
net = dev_net(skb->dev);
|
||||||
|
|
||||||
while ((sk = __raw_v6_lookup(net, sk, nexthdr, saddr, daddr,
|
while ((sk = __raw_v6_lookup(net, sk, nexthdr, saddr, daddr,
|
||||||
|
Loading…
Reference in New Issue
Block a user