From owner-freebsd-bugs@FreeBSD.ORG Tue Dec 16 09:20:30 2003 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 92D9116A4CE for ; Tue, 16 Dec 2003 09:20:30 -0800 (PST) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0C03843D4F for ; Tue, 16 Dec 2003 09:20:24 -0800 (PST) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) hBGHKNFR047095 for ; Tue, 16 Dec 2003 09:20:23 -0800 (PST) (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.10/8.12.10/Submit) id hBGHKNM7047094; Tue, 16 Dec 2003 09:20:23 -0800 (PST) (envelope-from gnats) Resent-Date: Tue, 16 Dec 2003 09:20:23 -0800 (PST) Resent-Message-Id: <200312161720.hBGHKNM7047094@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Dmitry Sivachenko Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9FD9916A4CE for ; Tue, 16 Dec 2003 09:11:58 -0800 (PST) Received: from tear.demos.su (tear.demos.ru [194.87.2.103]) by mx1.FreeBSD.org (Postfix) with ESMTP id 02CD843D31 for ; Tue, 16 Dec 2003 09:11:57 -0800 (PST) (envelope-from mitya@tear.demos.su) Received: (from mitya@localhost) by tear.demos.su (8.12.9p2/8.12.9) id hBGHAxYD000299; Tue, 16 Dec 2003 20:10:59 +0300 (MSK) (envelope-from mitya) Message-Id: <200312161710.hBGHAxYD000299@tear.demos.su> Date: Tue, 16 Dec 2003 20:10:59 +0300 (MSK) From: Dmitry Sivachenko To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Subject: kern/60304: IPFW2 does not send unreach port in certain cases X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Dmitry Sivachenko List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Dec 2003 17:20:30 -0000 >Number: 60304 >Category: kern >Synopsis: IPFW2 does not send unreach port in certain cases >Confidential: no >Severity: serious >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Tue Dec 16 09:20:23 PST 2003 >Closed-Date: >Last-Modified: >Originator: Dmitry Sivachenko >Release: FreeBSD 4.9-RELEASE i386 >Organization: >Environment: System: FreeBSD tear.demos.su 4.9-RELEASE FreeBSD 4.9-RELEASE #7: Tue Dec 16 19:58:40 MSK 2003 mitya@tear.demos.su:/usr/src/sys/compile/TEAR i386 >Description: ipfw2 does not send unreach port ICMP message in certain cases. >How-To-Repeat: configure IP address on your machine: X.Y.Z.231 (the last byte is important, see below). Add the following rule: 00100 unreach port udp from any to X.Y.Z.231 execute 'traceroute X.Y.Z.231' from another machine. You'll see '*' instead of the last hop. This happens when the last byte of IP-address corresponds to the first byte of network class D. >Fix: --- /tmp/ip_fw2.c Tue Dec 16 20:08:37 2003 +++ ip_fw2.c Tue Dec 16 20:09:04 2003 @@ -1969,7 +1969,7 @@ (proto != IPPROTO_ICMP || is_icmp_query(ip)) && !(m->m_flags & (M_BCAST|M_MCAST)) && - !IN_MULTICAST(dst_ip.s_addr)) { + !IN_MULTICAST(ntohl(dst_ip.s_addr))) { send_reject(args, cmd->arg1, offset,ip_len); m = args->m; >Release-Note: >Audit-Trail: >Unformatted: