summaryrefslogtreecommitdiffstats
path: root/net/ipv6/ip6_input.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2013-04-21 10:57:33 +0200
committerIngo Molnar <mingo@kernel.org>2013-04-21 10:57:33 +0200
commit73e21ce28d8d2b75140b742b01373c3a085ecc52 (patch)
treeadd380154271f9a68be4099590f912b4ab4bed9f /net/ipv6/ip6_input.c
parentb5210b2a34bae35fc00675462333af45676d727c (diff)
parentf1923820c447e986a9da0fc6bf60c1dccdf0408e (diff)
downloadop-kernel-dev-73e21ce28d8d2b75140b742b01373c3a085ecc52.zip
op-kernel-dev-73e21ce28d8d2b75140b742b01373c3a085ecc52.tar.gz
Merge branch 'perf/urgent' into perf/core
Conflicts: arch/x86/kernel/cpu/perf_event_intel.c Merge in the latest fixes before applying new patches, resolve the conflict. Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'net/ipv6/ip6_input.c')
-rw-r--r--net/ipv6/ip6_input.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/net/ipv6/ip6_input.c b/net/ipv6/ip6_input.c
index e33fe0a..2bab2aa 100644
--- a/net/ipv6/ip6_input.c
+++ b/net/ipv6/ip6_input.c
@@ -118,6 +118,18 @@ int ipv6_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt
ipv6_addr_loopback(&hdr->daddr))
goto err;
+ /* RFC4291 Errata ID: 3480
+ * Interface-Local scope spans only a single interface on a
+ * node and is useful only for loopback transmission of
+ * multicast. Packets with interface-local scope received
+ * from another node must be discarded.
+ */
+ if (!(skb->pkt_type == PACKET_LOOPBACK ||
+ dev->flags & IFF_LOOPBACK) &&
+ ipv6_addr_is_multicast(&hdr->daddr) &&
+ IPV6_ADDR_MC_SCOPE(&hdr->daddr) == 1)
+ goto err;
+
/* RFC4291 2.7
* Nodes must not originate a packet to a multicast address whose scope
* field contains the reserved value 0; if such a packet is received, it
OpenPOWER on IntegriCloud