Date: Wed, 1 Apr 2009 10:58:50 +0000 (UTC) From: Paolo Pisati <piso@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r190614 - user/piso/sys/netinet Message-ID: <200904011058.n31AwosC029838@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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; }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200904011058.n31AwosC029838>