Index: ipfrag.c
===================================================================
RCS file: /cvs/honeyd/ipfrag.c,v
retrieving revision 1.9
diff -u -r1.9 ipfrag.c
--- ipfrag.c	17 Apr 2002 16:38:40 -0000	1.9
+++ ipfrag.c	19 Feb 2003 02:59:39 -0000
@@ -241,12 +241,12 @@
 	if (prev && prev->off + prev->len > off) {
 		overlap = prev->off + prev->len - off;
 
-		if (overlap > len) {
+		if (overlap >= len) {
 			if (fragq->fragp == FRAG_NEW) {
 				u_char *odata = prev->data + off - prev->off;
 				memcpy(odata, ent->data, len);
 			}
-			goto drop_fragment;
+			goto free_fragment;
 		}
 
 		if (fragq->fragp == FRAG_OLD) {
@@ -316,6 +316,7 @@
 
  drop_fragment:
 	TAILQ_REMOVE(&fragq->fraglist, ent, next);
+ free_fragment:
 	ip_fragent_free(ent);
 	return (0);
 }
