]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Add IPv6 multicast filtering fix from David Stevens
authorChris Wright <chrisw@osdl.org>
Thu, 15 Sep 2005 22:00:34 +0000 (15:00 -0700)
committerChris Wright <chrisw@osdl.org>
Thu, 15 Sep 2005 22:00:34 +0000 (15:00 -0700)
queue/ipv6-fix-per-socket-multicast-filtering.patch [new file with mode: 0644]
queue/series

diff --git a/queue/ipv6-fix-per-socket-multicast-filtering.patch b/queue/ipv6-fix-per-socket-multicast-filtering.patch
new file mode 100644 (file)
index 0000000..2307f96
--- /dev/null
@@ -0,0 +1,34 @@
+From stable-bounces@linux.kernel.org  Thu Sep 15 12:46:31 2005
+To: stable@kernel.org
+From: David Stevens <dlstevens@us.ibm.com>
+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 <dlstevens@us.ibm.com>
+Signed-off-by: Chris Wright <chrisw@osdl.org>
+---
+ 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;
index b3704c840f3ea419742cb3fc0d4f2e2e64ef75a2..e090ff58dca11afce0a7edb5e9edadfe180f04ba 100644 (file)
@@ -1,2 +1,3 @@
 yenta-oops-fix.patch
 fix-de_thread-BUG_ON.patch
+ipv6-fix-per-socket-multicast-filtering.patch