suggestion for 2.0.34

Mark Stacey (heathclf@skynet.csn.ul.ie)
Thu, 2 Apr 1998 21:13:11 +0100 (IST)


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