
27 Jul
2009
27 Jul
'09
1:41 p.m.
On Fri 24 Jul 2009 04:04, Alessandro Rubini pondered: [snip]
+/* This only reassembles fragments that come in proper order */ +static inline IP_t *NetDefragment(IP_t *ip, int *lenp) +{
- static uchar pkt_buff[16384]; /*temporary arbitrary limit */
- static int next_fragment;
- static ushort pkt_id;
[snip]
- /* further fragment: skip ip header (we miss offset_of...) */
- memcpy(pkt_buff + next_fragment, pkt, len);
- next_fragment += len;
Also (forgot last night) - we need to make sure the length of the packet fits in the reassembly buffer before you do the memcpy(). Setting the tftp block size to 16384 is bad if the buffer is also set to 16384.. (since it has the IP header on it)...
-Robin