From: Chris Wright Date: Thu, 15 Sep 2005 22:00:34 +0000 (-0700) Subject: Add IPv6 multicast filtering fix from David Stevens X-Git-Tag: v2.6.13.2~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2789557df5994fc94b30171c319836df6f9b9f7f;p=thirdparty%2Fkernel%2Fstable-queue.git Add IPv6 multicast filtering fix from David Stevens --- diff --git a/queue/ipv6-fix-per-socket-multicast-filtering.patch b/queue/ipv6-fix-per-socket-multicast-filtering.patch new file mode 100644 index 00000000000..2307f961eb0 --- /dev/null +++ b/queue/ipv6-fix-per-socket-multicast-filtering.patch @@ -0,0 +1,34 @@ +From stable-bounces@linux.kernel.org Thu Sep 15 12:46:31 2005 +To: stable@kernel.org +From: David Stevens +Date: Thu, 15 Sep 2005 13:46:06 -0600 +Subject: [PATCH] fix IPv6 per-socket multicast filtering in exact-match case + +per-socket multicast filters were not being applied to all sockets +in the case of an exact-match bound address, due to an over-exuberant +"return" in the look-up code. Fix below. IPv4 does not have this problem. + +Thanks to Hoerdt Mickael for reporting the bug. + +Signed-off-by: David L Stevens +Signed-off-by: Chris Wright +--- + net/ipv6/udp.c | 5 ++--- + 1 files changed, 2 insertions(+), 3 deletions(-) + +Index: linux-2.6.13.y/net/ipv6/udp.c +=================================================================== +--- linux-2.6.13.y.orig/net/ipv6/udp.c ++++ linux-2.6.13.y/net/ipv6/udp.c +@@ -404,9 +404,8 @@ static struct sock *udp_v6_mcast_next(st + continue; + + if (!ipv6_addr_any(&np->rcv_saddr)) { +- if (ipv6_addr_equal(&np->rcv_saddr, loc_addr)) +- return s; +- continue; ++ if (!ipv6_addr_equal(&np->rcv_saddr, loc_addr)) ++ continue; + } + if(!inet6_mc_check(s, loc_addr, rmt_addr)) + continue; diff --git a/queue/series b/queue/series index b3704c840f3..e090ff58dca 100644 --- a/queue/series +++ b/queue/series @@ -1,2 +1,3 @@ yenta-oops-fix.patch fix-de_thread-BUG_ON.patch +ipv6-fix-per-socket-multicast-filtering.patch