apply a fix from OpenBSD:

> revision 1.104
> date: 2006/01/18 22:03:21;  author: dhartmei;  state: Exp;  lines: +2 -2
> fix a bug in the fragment cache (used for 'scrub fragment crop/drop-ovl',
> but not 'fragment reassemble'), which can cause some fragments to get
> inserted into the cache twice, thereby violating an invariant, and panic-
> ing the system subsequently. ok deraadt@
This commit is contained in:
peter 2006-01-25 10:45:20 +00:00
parent 3ac7a40466
commit 10f6d07582

View File

@ -1,4 +1,4 @@
/* $NetBSD: pf_norm.c,v 1.10 2005/12/11 12:24:25 christos Exp $ */ /* $NetBSD: pf_norm.c,v 1.11 2006/01/25 10:45:20 peter Exp $ */
/* $OpenBSD: pf_norm.c,v 1.97 2004/09/21 16:59:12 aaron Exp $ */ /* $OpenBSD: pf_norm.c,v 1.97 2004/09/21 16:59:12 aaron Exp $ */
/* /*
@ -728,7 +728,7 @@ pf_fragcache(struct mbuf **m0, struct ip *h, struct pf_fragment **frag, int mff,
} else { } else {
hosed++; hosed++;
} }
} else { } else if (frp == NULL) {
/* There is a gap between fragments */ /* There is a gap between fragments */
DPFPRINTF(("fragcache[%d]: gap %d %d-%d (%d-%d)\n", DPFPRINTF(("fragcache[%d]: gap %d %d-%d (%d-%d)\n",
h->ip_id, -aftercut, off, max, fra->fr_off, h->ip_id, -aftercut, off, max, fra->fr_off,