From owner-svn-src-user@FreeBSD.ORG Wed Apr 1 10:58:50 2009 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9819E106566B; Wed, 1 Apr 2009 10:58:50 +0000 (UTC) (envelope-from piso@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 87DB38FC13; Wed, 1 Apr 2009 10:58:50 +0000 (UTC) (envelope-from piso@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n31AwoqW029839; Wed, 1 Apr 2009 10:58:50 GMT (envelope-from piso@svn.freebsd.org) Received: (from piso@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n31AwosC029838; Wed, 1 Apr 2009 10:58:50 GMT (envelope-from piso@svn.freebsd.org) Message-Id: <200904011058.n31AwosC029838@svn.freebsd.org> From: Paolo Pisati Date: Wed, 1 Apr 2009 10:58:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r190614 - user/piso/sys/netinet X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 Apr 2009 10:58:50 -0000 Author: piso Date: Wed Apr 1 10:58:50 2009 New Revision: 190614 URL: http://svn.freebsd.org/changeset/base/190614 Log: -avoid a double free -remove a redundant variable Modified: user/piso/sys/netinet/ip_fw2.c Modified: user/piso/sys/netinet/ip_fw2.c ============================================================================== --- user/piso/sys/netinet/ip_fw2.c Wed Apr 1 09:37:00 2009 (r190613) +++ user/piso/sys/netinet/ip_fw2.c Wed Apr 1 10:58:50 2009 (r190614) @@ -3385,8 +3385,6 @@ check_body: f->bcnt += pktlen; ip_off = (args->eh != NULL) ? ntohs(ip->ip_off) : ip->ip_off; if (ip_off & (IP_MF | IP_OFFMASK)) { - struct mbuf *reass; - /* * ip_reass() expects len & off in host * byte order: fix them in case we come @@ -3397,7 +3395,8 @@ check_body: ip->ip_off = ntohs(ip->ip_off); } - reass = ip_reass(m); + m = ip_reass(m); + args->m = m; /* * IP header checksum fixup after @@ -3407,8 +3406,7 @@ check_body: if (reass != NULL) { int hlen; - args->m = reass; - ip = mtod(args->m, struct ip *); + ip = mtod(m, struct ip *); hlen = ip->ip_hl << 2; /* revert len & off for layer2 pkts */ if (args->eh != NULL) @@ -3417,12 +3415,11 @@ check_body: if (hlen == sizeof(struct ip)) ip->ip_sum = in_cksum_hdr(ip); else - ip->ip_sum = in_cksum(args->m, hlen); + ip->ip_sum = in_cksum(m, hlen); retval = IP_FW_REASS; args->rule = f; goto done; } else { - /* XXX mbuf double free? */ retval = IP_FW_DENY; goto done; }