Skip site navigation (1)Skip section navigation (2)
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>