do not send icmp response if the original packet is encrypted.
authorDavid Rhodus <drhodus@dragonflybsd.org>
Tue, 14 Sep 2004 00:11:07 +0000 (00:11 +0000)
committerDavid Rhodus <drhodus@dragonflybsd.org>
Tue, 14 Sep 2004 00:11:07 +0000 (00:11 +0000)
Obtained from: KAME
Merged from fbsd.

sys/netinet/ip_icmp.c

index 176cda7..b3b0678 100644 (file)
@@ -32,7 +32,7 @@
  *
  *     @(#)ip_icmp.c   8.2 (Berkeley) 1/4/94
  * $FreeBSD: src/sys/netinet/ip_icmp.c,v 1.39.2.19 2003/01/24 05:11:34 sam Exp $
- * $DragonFly: src/sys/netinet/ip_icmp.c,v 1.10 2004/07/23 14:14:30 joerg Exp $
+ * $DragonFly: src/sys/netinet/ip_icmp.c,v 1.11 2004/09/14 00:11:07 drhodus Exp $
  */
 
 #include "opt_ipsec.h"
@@ -160,10 +160,13 @@ icmp_error(n, type, code, dest, destifp)
        if (type != ICMP_REDIRECT)
                icmpstat.icps_error++;
        /*
+        * Don't send error if the original packet was encrypted.
         * Don't send error if not the first fragment of message.
         * Don't error if the old packet protocol was ICMP
         * error message, only known informational types.
         */
+       if (n->m_flags & M_DECRYPTED)
+               goto freeit;
        if (oip->ip_off &~ (IP_MF|IP_DF))
                goto freeit;
        if (oip->ip_p == IPPROTO_ICMP && type != ICMP_REDIRECT &&