summaryrefslogtreecommitdiffstats
path: root/net/ipv6/sit.c
diff options
context:
space:
mode:
authorDavid L Stevens <dlstevens@us.ibm.com>2005-12-27 14:03:00 -0800
committerDavid S. Miller <davem@davemloft.net>2005-12-27 14:03:00 -0800
commit5ab4a6c81eb3dbe32361791d1535f9153f79b0ed (patch)
treec89504389bf1a3452a499db9ea19acea76941616 /net/ipv6/sit.c
parent1b93ae64cabe5e28dd5a1f35f96f938ca4f6ae20 (diff)
downloadblackbird-op-linux-5ab4a6c81eb3dbe32361791d1535f9153f79b0ed.tar.gz
blackbird-op-linux-5ab4a6c81eb3dbe32361791d1535f9153f79b0ed.zip
[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>
Diffstat (limited to 'net/ipv6/sit.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud