ok?

Index: net/pf.c
===================================================================
RCS file: /cvs/src/sys/net/pf.c,v
retrieving revision 1.2
diff -u -p -r1.2 pf.c
--- net/pf.c    26 Dec 2008 18:51:52 -0000      1.2
+++ net/pf.c    12 Aug 2009 20:54:12 -0000
@@ -5754,6 +5754,15 @@ pf_test(int dir, struct ifnet *ifp, stru
                break;
        }
 
+#ifdef INET6
+       case IPPROTO_ICMPV6: {
+               action = PF_DROP;
+               DPFPRINTF(PF_DEBUG_MISC,
+                   ("pf: dropping IPv4 packet with ICMPv6 payload\n"));
+               goto done;
+       }
+#endif
+
        default:
                action = pf_test_state_other(&s, dir, kif, m, &pd);
                if (action == PF_PASS) {
@@ -6103,6 +6112,13 @@ pf_test6(int dir, struct ifnet *ifp, str
                        action = pf_test_rule(&r, &s, dir, kif,
                            m, off, h, &pd, &a, &ruleset, &ip6intrq);
                break;
+       }
+
+       case IPPROTO_ICMP: {
+               action = PF_DROP;
+               DPFPRINTF(PF_DEBUG_MISC,
+                   ("pf: dropping IPv6 packet with ICMPv4 payload\n"));
+               goto done;
        }
 
        case IPPROTO_ICMPV6: {

Reply via email to