patch-2.0.31 linux/net/ipv4/ip_fragment.c

Next file: linux/net/ipv4/ip_fw.c
Previous file: linux/net/ipv4/ip_forward.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.0.30/linux/net/ipv4/ip_fragment.c linux/net/ipv4/ip_fragment.c
@@ -388,6 +388,8 @@
 		fp = fp->next;
 	}
 
+	skb->pkt_type = qp->fragments->skb->pkt_type;
+	skb->protocol = qp->fragments->skb->protocol;
 	/* We glued together all fragments, so remove the queue entry. */
 	ip_free(qp);
 
@@ -521,7 +523,7 @@
 	prev = NULL;
 	for(next = qp->fragments; next != NULL; next = next->next)
 	{
-		if (next->offset > offset)
+		if (next->offset >= offset)
 			break;	/* bingo! */
 		prev = next;
 	}
@@ -567,7 +569,7 @@
 			else
 				qp->fragments = tmp->next;
 
-			if (tfp->next != NULL)
+			if (tmp->next != NULL)
 				tmp->next->prev = tmp->prev;
 			
 			next=tfp;	/* We have killed the original next frame */

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov