Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 597792 | Differences between
and this patch

Collapse All | Expand All

(-)/tmp/reassembly.c (-4 / +10 lines)
Lines 211-217 Link Here
211
{
211
{
212
	struct sk_buff *prev, *next;
212
	struct sk_buff *prev, *next;
213
	struct net_device *dev;
213
	struct net_device *dev;
214
	int offset, end;
214
	int offset, end, temp;
215
	struct net *net = dev_net(skb_dst(skb)->dev);
215
	struct net *net = dev_net(skb_dst(skb)->dev);
216
	u8 ecn;
216
	u8 ecn;
217
217
Lines 219-226 Link Here
219
		goto err;
219
		goto err;
220
220
221
	offset = ntohs(fhdr->frag_off) & ~0x7;
221
	offset = ntohs(fhdr->frag_off) & ~0x7;
222
	end = offset + (ntohs(ipv6_hdr(skb)->payload_len) -
222
223
			((u8 *)(fhdr + 1) - (u8 *)(ipv6_hdr(skb) + 1)));
223
	printk ("DDD ip6_frag_queue  offset=%x; payload_len=%x; fhdr1=%x; ipv6_hdr=%x\n", offset, ntohs(ipv6_hdr(skb)->payload_len), (u8 *)(fhdr + 1), (u8 *)(ipv6_hdr(skb) + 1));
224
225
	temp = (u8 *)(fhdr + 1) - (u8 *)(ipv6_hdr(skb) + 1);
226
	temp &= 0xff;
227
	end = offset + (ntohs(ipv6_hdr(skb)->payload_len) - temp);
228
//			((u8 *)(fhdr + 1) - (u8 *)(ipv6_hdr(skb) + 1)));
229
	printk ("DDD ip6_frag_queue2 end=%x\n", end);
224
230
225
	if ((unsigned int)end > IPV6_MAXPLEN) {
231
	if ((unsigned int)end > IPV6_MAXPLEN) {
226
		__IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)),
232
		__IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)),
Lines 558-564 Link Here
558
		int ret;
564
		int ret;
559
565
560
		spin_lock(&fq->q.lock);
566
		spin_lock(&fq->q.lock);
561
		
567
562
		ret = ip6_frag_queue(fq, skb, fhdr, IP6CB(skb)->nhoff);
568
		ret = ip6_frag_queue(fq, skb, fhdr, IP6CB(skb)->nhoff);
563
569
564
		spin_unlock(&fq->q.lock);
570
		spin_unlock(&fq->q.lock);

Return to bug 597792