linux/net/ipv4
Ilpo Järvinen 600ff0c24b [TCP]: Prevent pseudo garbage in SYN's advertized window
TCP may advertize up to 16-bits window in SYN packets (no window
scaling allowed). At the same time, TCP may have rcv_wnd
(32-bits) that does not fit to 16-bits without window scaling
resulting in pseudo garbage into advertized window from the
low-order bits of rcv_wnd. This can happen at least when
mss <= (1<<wscale) (see tcp_select_initial_window). This patch
fixes the handling of SYN advertized windows (compile tested
only).

In worst case (which is unlikely to occur though), the receiver
advertized window could be just couple of bytes. I'm not sure
that such situation would be handled very well at all by the
receiver!? Fortunately, the situation normalizes after the
first non-SYN ACK is received because it has the correct,
scaled window.

Alternatively, tcp_select_initial_window could be changed to
prevent too large rcv_wnd in the first place.

[ tcp_make_synack() has the same bug, and I've added a fix for
  that to this patch -DaveM ]

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
2007-02-13 12:42:11 -08:00
..
ipvs [PATCH] mark struct file_operations const 7 2007-02-12 09:48:46 -08:00
netfilter [NETFILTER]: Clear GSO bits for TCP reset packet 2007-02-13 12:32:58 -08:00
Kconfig [TCP] MD5SIG: Kill CONFIG_TCP_MD5SIG_DEBUG. 2006-12-02 21:31:47 -08:00
Makefile [NET]: Supporting UDP-Lite (RFC 3828) in Linux 2006-12-02 21:22:46 -08:00
af_inet.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
ah4.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
arp.c [PATCH] mark struct file_operations const 7 2007-02-12 09:48:46 -08:00
cipso_ipv4.c NetLabel: add the ranged tag to the CIPSOv4 protocol 2006-12-02 21:31:38 -08:00
datagram.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
devinet.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
esp4.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
fib_frontend.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
fib_hash.c [PATCH] mark struct file_operations const 7 2007-02-12 09:48:46 -08:00
fib_lookup.h [IPV4]: net/ipv4/fib annotations 2006-09-28 18:02:23 -07:00
fib_rules.c [NETLINK]: Do precise netlink message allocations where possible 2006-12-02 21:22:11 -08:00
fib_semantics.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
fib_trie.c [PATCH] mark struct file_operations const 7 2007-02-12 09:48:46 -08:00
icmp.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
igmp.c [PATCH] mark struct file_operations const 7 2007-02-12 09:48:46 -08:00
inet_connection_sock.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
inet_diag.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
inet_hashtables.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
inet_timewait_sock.c [NET]: change layout of ehash table 2007-02-08 14:16:46 -08:00
inetpeer.c [PATCH] slab: remove kmem_cache_t 2006-12-07 08:39:25 -08:00
ip_forward.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
ip_fragment.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
ip_gre.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
ip_input.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
ip_options.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
ip_output.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
ip_sockglue.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
ipcomp.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
ipconfig.c [PATCH] mark struct file_operations const 7 2007-02-12 09:48:46 -08:00
ipip.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
ipmr.c [PATCH] mark struct file_operations const 7 2007-02-12 09:48:46 -08:00
multipath.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
multipath_drr.c [IPV4]: Restore multipath routing after rt_next changes. 2007-02-10 23:20:50 -08:00
multipath_random.c [IPV4]: Restore multipath routing after rt_next changes. 2007-02-10 23:20:50 -08:00
multipath_rr.c [IPV4]: Restore multipath routing after rt_next changes. 2007-02-10 23:20:50 -08:00
multipath_wrandom.c [IPV4]: Restore multipath routing after rt_next changes. 2007-02-10 23:20:50 -08:00
netfilter.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
proc.c [PATCH] mark struct file_operations const 7 2007-02-12 09:48:46 -08:00
protocol.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
raw.c [PATCH] mark struct file_operations const 7 2007-02-12 09:48:46 -08:00
route.c [PATCH] mark struct file_operations const 7 2007-02-12 09:48:46 -08:00
syncookies.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
sysctl_net_ipv4.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
tcp.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
tcp_bic.c [TCP] tcp_bic: use BUILD_BUG_ON 2006-09-22 15:18:04 -07:00
tcp_cong.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
tcp_cubic.c [TCP]: Use read mostly for CUBIC parameters. 2007-02-12 13:15:20 -08:00
tcp_diag.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
tcp_highspeed.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
tcp_htcp.c [TCP]: cleanup of htcp (resend) 2007-02-12 13:34:03 -08:00
tcp_hybla.c [TCP] Congestion control (modulo lp, bic): use BUILD_BUG_ON 2006-09-22 15:18:13 -07:00
tcp_input.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
tcp_ipv4.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
tcp_lp.c [TCP] tcp-lp: prevent chance for oops 2006-09-28 18:03:07 -07:00
tcp_minisocks.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
tcp_output.c [TCP]: Prevent pseudo garbage in SYN's advertized window 2007-02-13 12:42:11 -08:00
tcp_probe.c [PATCH] mark struct file_operations const 7 2007-02-12 09:48:46 -08:00
tcp_scalable.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
tcp_timer.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
tcp_vegas.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
tcp_veno.c [TCP] Congestion control (modulo lp, bic): use BUILD_BUG_ON 2006-09-22 15:18:13 -07:00
tcp_westwood.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
tunnel4.c [INET]: Move no-tunnel ICMP error to tunnel4/tunnel6 2006-04-09 22:25:25 -07:00
udp.c [UDP]: UDP can use sk_hash to speedup lookups 2007-02-10 23:20:29 -08:00
udp_impl.h [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
udplite.c [NET]: Possible cleanups. 2006-12-02 21:31:51 -08:00
xfrm4_input.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
xfrm4_mode_beet.c [XFRM]: BEET mode 2006-10-04 00:31:09 -07:00
xfrm4_mode_transport.c [IPSEC]: output mode to take an xfrm state as input param 2006-09-22 15:18:48 -07:00
xfrm4_mode_tunnel.c [XFRM]: Fix IPv4 tunnel mode decapsulation with IPV6=n 2007-02-12 20:27:10 -08:00
xfrm4_output.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
xfrm4_policy.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
xfrm4_state.c [IPSEC]: exporting xfrm_state_afinfo 2007-02-08 12:39:00 -08:00
xfrm4_tunnel.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00