Date: Mon, 05 Jul 2010 21:25:47 -0400 From: jhell <jhell@dataix.net> To: Earl Lapus <earl.lapus@gmail.com> Cc: freebsd-net@freebsd.org Subject: Re: patch review for kern/146534 Message-ID: <4C32861B.4060203@dataix.net> In-Reply-To: <AANLkTiku9mnq5lTxxLk8-WDR14s5AFPInZbZmapwHU4L@mail.gmail.com> References: <AANLkTinjn3k5bQ00rxeZb2EVqTsu4XL3_Qz_tA3-RE3p@mail.gmail.com> <AANLkTiku9mnq5lTxxLk8-WDR14s5AFPInZbZmapwHU4L@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --] -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 07/04/2010 04:00, Earl Lapus wrote: > Hi, > > I just want to follow-up on this PR. Basically a working icmp6 > functionality that exists in 7.x and below broke in 8.x and CURRENT. I > believe it's too late to have it fixed in 8.1. Maybe someone on the > list that really knows the icmp6 code can have a look and verify if it > is indeed a bug. If it is, hopefully it can be fixed on the next > releases. > > Cheers! > Earl > > I have reviewed this, edited the patch and determined this does fix the problem. The patch is attached and is also here: http://bit.ly/clqhxt Regards, - -- +-+-+-+-+-+ |j|h|e|l|l| +-+-+-+-+-+ -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.15 (FreeBSD) iQEcBAEBAgAGBQJMMoYaAAoJEJBXh4mJ2FR+dN0H/jGb6K6NiWJuRDjfg+hUBebm AXfUvhrIyD0SKriaCVM9+ZymkfrgDBzRGWKZ61I7K3ZH/shhbII0NoS+VxFa9sqN ZuWu/2zDbuyY36+OjRWMreNuXns3/LEm6VxHlo8JbGBAtk0d1BPM3MqrV5JPP0W1 pqy0db3NOqqNMADsK7GYdAfI65cgx+05XuhmKZ86fCsfnd7EkPcFVIGZrJxoT8HB P7VhtfsxsEwakTMhbcgXltQggWKhGtMKzjscAe5n6ncd5Aq22JjKdPZHTcin8mLi htqynqfmTcs88D0nG0/m6344HXPFOe16vCRJmJGBvR0wBbICEycBZZtsqgmbqiU= =huMJ -----END PGP SIGNATURE----- [-- Attachment #2 --] Index: sys/netinet6/icmp6.c =================================================================== --- sys/netinet6/icmp6.c (revision 209700) +++ sys/netinet6/icmp6.c (working copy) @@ -2162,8 +2162,21 @@ } if ((srcp != NULL) && - (in6_addrscope(srcp) != in6_addrscope(&ip6->ip6_src))) - srcp = NULL; + (in6_addrscope(srcp) != in6_addrscope(&ip6->ip6_src))) { + struct sockaddr_in6 sin6; + + bzero(&sin6, sizeof(sin6)); + sin6.sin6_family = AF_INET6; + sin6.sin6_len = sizeof(sin6); + sin6.sin6_addr = origdst; + + ia = (struct in6_ifaddr *) + ifa_ifwithaddr((struct sockaddr *)&sin6); + + if (ia && (ia->ia6_flags & IN6_IFF_ANYCAST)) + srcp = NULL; + } + if (srcp == NULL) { int e; [-- Attachment #3 --] L2 WT~eNWswA648F-5-wxɓP-A`06B2ֵsVb[eG[DC/y3}}×ςSJjygܐ)S /`<kPJVsR-j-r5=:ҎgٖFC73@''b"oxmL"z!CRں,Tؐu&AcG#Mb{Z[}lזvhO(y"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4C32861B.4060203>
