diff options
Diffstat (limited to 'net/ipv4/tcp_output.c')
| -rw-r--r-- | net/ipv4/tcp_output.c | 6 | 
1 files changed, 4 insertions, 2 deletions
| diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index a00532de2a8c..8165f5aa8c71 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c @@ -468,7 +468,8 @@ static unsigned tcp_syn_options(struct sock *sk, struct sk_buff *skb,  	}  	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(struct sock *sk,  	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; | 
