Skip to contentSkip to conversation

ip/defrag: fix processing of last short fragment

PATCH New Fillod Stephane 3 participants 3 messages Jun 11, 2010 – Jun 20, 2010 Networking

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ip/defrag: fix processing of last short fragment

TFTP'ing a file of size 1747851 bytes with CONFIG_IP_DEFRAG and CONFIG_TFTP_BLOCKSIZE set to 4096 fails with a timeout, because the last fragment is not taken into account. This patch fixes IP fragments having less than 8 bytes of payload.

---

Many thanks to Alessandro for the explanation and the better suggestion.
PS: Sorry for my stinky MUA breaking References: field :-(

net/net.c +1 -1
@@ -1201,7 +1201,8 @@ static IP_t *__NetDefragment(IP_t *ip, i
 		h = payload + h->next_hole;
 	}
 
-	if (offset8 + (len / 8) <= h - payload) {
+	/* last fragment may be 1..7 bytes, the "+7" forces acceptance

*/
+ if (offset8 + ((len + 7) / 8) <= h - payload) {
/* no overlap with holes (dup fragment?) */ return NULL;
}

#1 lore raw

PATCH 1/1 ip/defrag: fix processing of last short fragment

Quoted 4 lines · On Friday, June 11, 2010 13:26:43 Fillod Stephane wrote:

TFTP'ing a file of size 1747851 bytes with CONFIG_IP_DEFRAG and CONFIG_TFTP_BLOCKSIZE set to 4096 fails with a timeout, because the last fragment is not taken into account. This patch fixes IP fragments having less than 8 bytes of payload.

could we get this reviewed/merged before 2010.06 since it looks like kind of a bad bug ?
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
Url : http://lists.denx.de/pipermail/u-boot/attachments/20100619/46415a49/attachment.pgp

#2 lore raw

PATCH 1/1 ip/defrag: fix processing of last short fragment

Quoted 8 lines · Mike Frysinger
Quoted 4 lines · On Friday, June 11, 2010 13:26:43 Fillod Stephane wrote:

TFTP'ing a file of size 1747851 bytes with CONFIG_IP_DEFRAG and CONFIG_TFTP_BLOCKSIZE set to 4096 fails with a timeout, because the last fragment is not taken into account. This patch fixes IP fragments having less than 8 bytes of payload.

could we get this reviewed/merged before 2010.06 since it looks like kind of a bad bug ?

Sure, I'm planning to work through my backlog tonight.

Quoted 2 lines

-mike

Regards,
Ben