From owner-freebsd-net@FreeBSD.ORG Sat Nov 6 10:25:42 2004 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0861216A4CE for ; Sat, 6 Nov 2004 10:25:41 +0000 (GMT) Received: from mx01.bos.ma.towardex.com (mx01.bos.ma.towardex.com [65.124.16.9]) by mx1.FreeBSD.org (Postfix) with ESMTP id C83B643D5F for ; Sat, 6 Nov 2004 10:25:41 +0000 (GMT) (envelope-from haesu@mx01.bos.ma.towardex.com) Received: by mx01.bos.ma.towardex.com (TowardEX ESMTP 3.0p11_DAKN, from userid 1001) id 6BE0B2FA1B; Sat, 6 Nov 2004 05:25:39 -0500 (EST) Date: Sat, 6 Nov 2004 05:25:39 -0500 From: James To: freebsd-net@freebsd.org Message-ID: <20041106102539.GA30766@scylla.towardex.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.1i Subject: ip_fastforward() sanity check.. X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 06 Nov 2004 10:25:42 -0000 I seem to have a little concern in one specific early-sanity check in the ip_fastforward() function of the latest 5.3 code base: /* * Is first mbuf large enough for ip header and is header present? */ if (m->m_len < sizeof (struct ip) && (m = m_pullup(m, sizeof (struct ip))) == 0) { ipstat.ips_toosmall++; goto drop; } Okay, if m_pullup() returns 0 due to failure, it already called m_freem(m) by itself. But we have "goto drop;" after that, which is redundant, no? I don't think this is a bit of issue in IPv4 implementation, but as obviously, in IPv6 implementation, if calling 'goto drop' or redundant m_freem(m) in case where m_pullup returns NULL/0, it may crash the kernel rock hard at m_tag_delete_chain in uipc_mbuf.c (even if you are checking 'if (m) m_freem(m)' as remains are left over) If any one has any comments, please let me know. If this is not a concern please disregard my rant and excuse me for waste of time :) Thanks, -J -- James Jun TowardEX Technologies, Inc. Technical Lead IPv4 and Native IPv6 Colocation, Bandwidth, james@towardex.com and Web Hosting Services in the Metro Boston area cell: 1(978)-394-2867 web: http://www.towardex.com , noc: www.twdx.net