lkml.org 
[lkml]   [1998]   [Apr]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
Subjectsuggestion for 2.0.34
In ./net/ipv4/tcp_output.c, the tcp_send_synack() function, there is a
section where the tcp header is set up. Can anyone tell me why all the
flags are explicitely set except the FIN flag? Here are the lines:

t1->syn = 1;
t1->ack = 1;
t1->urg = 0;
t1->rst = 0;
t1->psh = 0;

The problem occurs because of the way memcpy is used to set up t1 earlier
on:

memcpy(t1, skb->h.th, sizeof(*t1));

If the packet received had a FIN flag set, then the synack will have its
fin flag set, so the host will send a fin without even realising it.
Causing trouble for the receiving host.

This causes problems when receiving packets from a T/TCP host, where the
original SYN may contain a FIN aswell.

Was it an oversight or is there reasoning behind it?

Maybe it should be added to the 2.0.34? If it already has, my apologies.

Mark Stacey

... and that's my two cents.

"Its not that I forgot, its just that I can't remember"


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu

\
 
 \ /
  Last update: 2005-03-22 13:42    [W:0.034 / U:0.248 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site