ref: 5f89083773b59db9d83f1207c18e805fba69233e
parent: 96987c105d5b42955d9d0ee07a6a703fd88549e4
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Sun Jun 10 23:14:28 EDT 2018
devip: do not icmp reply on multicast destination
--- a/sys/src/9/ip/icmp6.c
+++ b/sys/src/9/ip/icmp6.c
@@ -430,7 +430,7 @@
uchar ia[IPaddrlen];
p = (Ip6hdr *)bp->rp;
- if(isv6mcast(p->src) || !ipv6local(ifc, ia, p->src))
+ if(isv6mcast(p->dst) || isv6mcast(p->src) || !ipv6local(ifc, ia, p->src))
return;
netlog(f, Logicmp, "send icmphostunr %I -> src %I dst %I\n",
@@ -467,7 +467,7 @@
uchar ia[IPaddrlen];
p = (Ip6hdr *)bp->rp;
- if(isv6mcast(p->src) || !ipv6local(ifc, ia, p->src))
+ if(isv6mcast(p->dst) || isv6mcast(p->src) || !ipv6local(ifc, ia, p->src))
return;
netlog(f, Logicmp, "send icmpttlexceeded6 %I -> src %I dst %I\n",
@@ -500,7 +500,7 @@
uchar ia[IPaddrlen];
p = (Ip6hdr *)bp->rp;
- if(isv6mcast(p->src) || !ipv6local(ifc, ia, p->src))
+ if(isv6mcast(p->dst) || isv6mcast(p->src) || !ipv6local(ifc, ia, p->src))
return;
netlog(f, Logicmp, "send icmppkttoobig6 %I -> src %I dst %I\n",
--
⑨