Subject: Re: [PATCH] tcp: fix tcp header size miscalculation when window scale is unused

From: Phil Love <[email-masked]>
Date: Mon, 25 Aug 2008 09:30:13 -0700

Here is the patch using Thunderbird, rather than Apple Mail. Hopefully 
it is not mangled this time.

Signed-off-by: Philip Love <[email-masked]>

--- a/net/ipv4/tcp_output.c	2008-08-24 07:44:18.000000000 -0700
+++ b/net/ipv4/tcp_output.c	2008-08-24 07:43:05.000000000 -0700
@@ -468,7 +468,8 @@ static unsigned tcp_syn_options(struct s
  	}
  	if (likely(sysctl_tcp_window_scaling)) {
  		opts->ws = tp->rx_opt.rcv_wscale;
-		size += TCPOLEN_WSCALE_ALIGNED;
+		if(likely(opts->ws))
+			size += TCPOLEN_WSCALE_ALIGNED;
  	}
  	if (likely(sysctl_tcp_sack)) {
  		opts->options |= OPTION_SACK_ADVERTISE;
@@ -509,7 +510,8 @@ static unsigned tcp_synack_options(struc

  	if (likely(ireq->wscale_ok)) {
  		opts->ws = ireq->rcv_wscale;
-		size += TCPOLEN_WSCALE_ALIGNED;
+		if(likely(opts->ws))
+			size += TCPOLEN_WSCALE_ALIGNED;
  	}
  	if (likely(doing_ts)) {
  		opts->options |= OPTION_TS;