NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

kern/47693: NetBSD ICMP processing does not handle unreachable code 13 - administratively prohibited



>Number:         47693
>Category:       kern
>Synopsis:       NetBSD ICMP processing does not handle unreachable code 13 - 
>administratively prohibited
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    kern-bug-people
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Mon Mar 25 18:20:00 +0000 2013
>Originator:     Erik E. Fair
>Release:        NetBSD 6.1_RC1
>Organization:
        the NetBSD Project
>Environment:
        
        
System: NetBSD cesium.clock.org 6.1_RC1 NetBSD 6.1_RC1 (V240) #0: Tue Feb 26 
19:16:36 PST 2013 
root%cesium.clock.org@localhost:/var/obj/sys/arch/sparc64/compile/V240 sparc64
Architecture: sparc64
Machine: sparc64
>Description:
        tcpdump one's incoming connection for ICMP, and watch

        Notice code 13 coming back multiple times in response to SMTP 
connection attempts

        Notice E-mail in queue to destination marked with "connection timed out"

        See ICMP_UNREACH_ADMIN_PROHIBIT in /usr/src/sys/netinet/ip_icmp.h
        Grep for it; find one reference in udp_userreq.c

        Look in /usr/src/sys/netinet/ip_icmp.c and see the case
        statement not handle that code; it defaults to "badcode" goto.

        Check netstat -s and find hundreds of "bad code" statistics, and wonder
        how many of those are (valid) code 13 versus something else.

>How-To-Repeat:
        
>Fix:
*** ip_icmp.c   Mon Jan  9 06:31:22 2012
--- /tmp/ip_icmp.c      Mon Mar 25 11:14:19 2013
***************
*** 491,496 ****
--- 491,497 ----
                        case ICMP_UNREACH_ISOLATED:
                        case ICMP_UNREACH_HOST_PROHIB:
                        case ICMP_UNREACH_TOSHOST:
+                       case ICMP_UNREACH_ADMIN_PROHIBIT:
                                code = PRC_UNREACH_HOST;
                                break;
  

>Unformatted:
        
        


Home | Main Index | Thread Index | Old Index