summaryrefslogtreecommitdiff
path: root/sys/netinet/ip_input.c
diff options
context:
space:
mode:
authorDavid Greenman <dg@FreeBSD.org>1996-09-08 13:45:49 +0000
committerDavid Greenman <dg@FreeBSD.org>1996-09-08 13:45:49 +0000
commite7c819442a925410fc39a09bc5a1044326973611 (patch)
treec5efe7a1e0257a9e0e59bcecbaafd945f7adf02d /sys/netinet/ip_input.c
parentfa9471546de7b6c2f6ed5bcbe306cf52276b8c70 (diff)
Notes
Diffstat (limited to 'sys/netinet/ip_input.c')
-rw-r--r--sys/netinet/ip_input.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/netinet/ip_input.c b/sys/netinet/ip_input.c
index 375a0f49bf0a..9e65813bbf7d 100644
--- a/sys/netinet/ip_input.c
+++ b/sys/netinet/ip_input.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)ip_input.c 8.2 (Berkeley) 1/4/94
- * $Id: ip_input.c,v 1.45 1996/07/10 19:44:25 julian Exp $
+ * $Id: ip_input.c,v 1.46 1996/08/21 21:37:00 sos Exp $
*/
#include "opt_ipfw.h"
@@ -589,6 +589,8 @@ ip_reass(ip, fp)
* if they are completely covered, dequeue them.
*/
while (q != (struct ipasfrag *)fp && ip->ip_off + ip->ip_len > q->ip_off) {
+ struct mbuf *m0;
+
i = (ip->ip_off + ip->ip_len) - q->ip_off;
if (i < q->ip_len) {
q->ip_len -= i;
@@ -596,9 +598,10 @@ ip_reass(ip, fp)
m_adj(dtom(q), i);
break;
}
+ m0 = dtom(q);
q = q->ipf_next;
- m_freem(dtom(q->ipf_prev));
ip_deq(q->ipf_prev);
+ m_freem(m0);
}
insert: