TCP SYNs broken in 2.3.41

From: Russell King (rmk@arm.linux.org.uk)
Date: Sun Jan 30 2000 - 11:36:32 EST


Hi,

I've just been investigating why TCP SYNs from an ARM box running 2.3.41
seem to be corrupted. Some bytes in the packet seem to be offset by 3,
others by 2.

Only TCP SYNs are affected by this. The reason appears to be caused by
a skb_reserve in tcp_output.c:tcp_connect() causing the skbuff data pointer
to become unaligned. The following patch clears this up, allow the TCP
header to be aligned again:

--- linux/net/ipv4/tcp_output.c Sat Jan 29 23:45:46 2000
+++ linux-ebsa285/net/ipv4/tcp_output.c Sun Jan 30 16:25:42 2000
@@ -1005,7 +1005,7 @@
         struct tcp_opt *tp = &(sk->tp_pinfo.af_tcp);
 
         /* Reserve space for headers. */
- skb_reserve(buff, MAX_TCP_HEADER + 15);
+ skb_reserve(buff, MAX_TCP_HEADER);
 
         /* We'll fix this up when we get a response from the other end.
          * See tcp_input.c:tcp_rcv_state_process case TCP_SYN_SENT.

Why is this '+ 15' here anyway? Can someone shed some enlightenment on it?
Also, can this go into the kernel for 2.3.42 please?
   _____
  |_____| ------------------------------------------------- ---+---+-
  | | Russell King rmk@arm.linux.org.uk --- ---
  | | | | http://www.arm.linux.org.uk/~rmk/aboutme.html / / |
  | +-+-+ --- -+-
  / | THE developer of ARM Linux |+| /|\
 / | | | --- |
    +-+-+ ------------------------------------------------- /\\\ |

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon Jan 31 2000 - 21:00:26 EST