linux/net/ipv6
David L Stevens 5ab4a6c81e [IPV6] mcast: Fix multiple issues in MLDv2 reports.
The below "jumbo" patch fixes the following problems in MLDv2.

1) Add necessary "ntohs" to recent "pskb_may_pull" check [breaks
        all nonzero source queries on little-endian (!)]

2) Add locking to source filter list [resend of prior patch]

3) fix "mld_marksources()" to
        a) send nothing when all queried sources are excluded
        b) send full exclude report when source queried sources are
                not excluded
        c) don't schedule a timer when there's nothing to report

NOTE: RFC 3810 specifies the source list should be saved and each
  source reported individually as an IS_IN. This is an obvious DOS
  path, requiring the host to store and then multicast as many sources
  as are queried (e.g., millions...). This alternative sends a full, 
  relevant report that's limited to number of sources present on the
  machine.

4) fix "add_grec()" to send empty-source records when it should
        The original check doesn't account for a non-empty source
        list with all sources inactive; the new code keeps that
        short-circuit case, and also generates the group header
        with an empty list if needed.

5) fix mca_crcount decrement to be after add_grec(), which needs
        its original value

These issues (other than item #1 ;-) ) were all found by Yan Zheng,
much thanks!

Signed-off-by: David L Stevens <dlstevens@us.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2005-12-27 14:03:00 -08:00
..
netfilter [NETFILTER]: Fix incorrect dependency for IP6_NF_TARGET_NFQUEUE 2005-12-19 13:53:26 -08:00
addrconf.c [IPV6]: Fix addrconf dead lock. 2005-12-27 13:35:15 -08:00
af_inet6.c [IPV6]: Load protocol module dynamically. 2005-12-02 20:56:57 -08:00
ah6.c
anycast.c
datagram.c [IPV6]: Fix calculation of AH length during filling ancillary data. 2005-11-20 12:21:59 +09:00
esp6.c [IPv6] IPsec: fix pmtu calculation of esp 2005-12-08 23:11:42 -08:00
exthdrs.c [IPV6]: Fix sending extension headers before and including routing header. 2005-11-20 12:23:18 +09:00
exthdrs_core.c
icmp.c [IPV6]: Try not to send icmp to anycast address. 2005-12-21 22:57:06 +09:00
inet6_hashtables.c
ip6_fib.c [IPV6]: Put addr_diff() into common header for future use. 2005-11-08 09:37:56 -08:00
ip6_flowlabel.c [IPV6]: Fix sending extension headers before and including routing header. 2005-11-20 12:23:18 +09:00
ip6_input.c [NETFILTER]: Add nf_conntrack subsystem. 2005-11-09 16:38:16 -08:00
ip6_output.c [IPV6]: make two functions static 2005-11-29 16:28:56 -08:00
ip6_tunnel.c [IPV6]: ip6ip6_lock is not unlocked in error path. 2005-11-09 13:08:29 -08:00
ipcomp6.c [NET]: kfree cleanup 2005-11-08 09:41:34 -08:00
ipv6_sockglue.c [IPV6]: make two functions static 2005-11-29 16:28:56 -08:00
ipv6_syms.c [IPV6]: Make ipv6_addr_type() more generic so that we can use it for source address selection. 2005-11-08 09:38:12 -08:00
Kconfig
Makefile
mcast.c [IPV6] mcast: Fix multiple issues in MLDv2 reports. 2005-12-27 14:03:00 -08:00
ndisc.c [IPV6]: Fix NS handing for proxy/anycast address 2005-10-05 12:11:41 -07:00
netfilter.c
proc.c [NET]: Wider use of for_each_*cpu() 2005-10-25 23:54:01 -02:00
protocol.c
raw.c Merge git://git.skbuff.net/gitroot/yoshfuji/linux-2.6.14+advapi-fix/ 2005-11-20 20:52:16 -08:00
reassembly.c [IPV4,IPV6]: replace handmade list with hlist in IPv{4,6} reassembly 2005-11-16 12:55:37 -08:00
route.c [IPV6]: Flag RTF_ANYCAST for anycast routes. 2005-12-21 22:56:42 +09:00
sit.c
sysctl_net_ipv6.c
tcp_ipv6.c [TCPv6]: Fix skb leak 2005-12-12 14:38:10 -08:00
udp.c Merge git://git.skbuff.net/gitroot/yoshfuji/linux-2.6.14+advapi-fix/ 2005-11-20 20:52:16 -08:00
xfrm6_input.c
xfrm6_output.c
xfrm6_policy.c [XFRM]: Handle DCCP in xfrm{4,6}_decode_session 2005-12-19 14:03:46 -08:00
xfrm6_state.c
xfrm6_tunnel.c