linux-stable/net
Srinivas Aji b40b4f79ce [TCP]: zero out rx_opt in tcp_disconnect()
When the server drops its connection, NFS client reconnects using the
same socket after disconnecting. If the new connection's SYN,ACK
doesn't contain the TCP timestamp option and the old connection's did,
tp->tcp_header_len is recomputed assuming no timestamp header but
tp->rx_opt.tstamp_ok remains set. Then tcp_build_and_update_options()
adds in a timestamp option past the end of the allocated TCP header,
overwriting TCP data, or when the data is in skb_shinfo(skb)->frags[],
overwriting skb_shinfo(skb) causing a crash soon after. (The issue was
debugged from such a crash.)

Similarly, wscale_ok and sack_ok also get set based on the SYN,ACK
packet but not reset on disconnect, since they are zeroed out at
initialization. The patch zeroes out the entire tp->rx_opt struct in
tcp_disconnect() to avoid this sort of problem.

Signed-off-by: Srinivas Aji <Aji_Srinivas@emc.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2007-05-03 17:32:28 -07:00
..
802 [NET]: cleanup extra semicolons 2007-04-25 22:29:24 -07:00
8021q [NET]: Rework dev_base via list_head (v3) 2007-05-03 15:13:45 -07:00
appletalk [NET]: Revert sk_buff walker cleanups. 2007-04-27 15:21:23 -07:00
atm [NET]: SPIN_LOCK_UNLOCKED cleanup in drivers/atm, net 2007-04-26 01:37:44 -07:00
ax25 [NET]: cleanup extra semicolons 2007-04-25 22:29:24 -07:00
bluetooth [BLUETOOTH] rfcomm_worker(): fix wakeup race 2007-04-26 01:41:01 -07:00
bridge [NET]: Rework dev_base via list_head (v3) 2007-05-03 15:13:45 -07:00
core [NET]: Rework dev_base via list_head (v3) 2007-05-03 15:13:45 -07:00
dccp [NET]: SPIN_LOCK_UNLOCKED cleanup in drivers/atm, net 2007-04-26 01:37:44 -07:00
decnet [NET]: Rework dev_base via list_head (v3) 2007-05-03 15:13:45 -07:00
econet [SK_BUFF]: Convert skb->tail to sk_buff_data_t 2007-04-25 22:26:28 -07:00
ethernet [SK_BUFF]: Introduce skb_reset_mac_header(skb) 2007-04-25 22:24:32 -07:00
ieee80211 [PATCH] ieee80211: add missing global needed by IEEE80211_DEBUG_XXXX 2007-04-28 11:01:05 -04:00
ipv4 [TCP]: zero out rx_opt in tcp_disconnect() 2007-05-03 17:32:28 -07:00
ipv6 [NET]: Rework dev_base via list_head (v3) 2007-05-03 15:13:45 -07:00
ipx [SK_BUFF]: Introduce skb_reset_transport_header(skb) 2007-04-25 22:25:15 -07:00
irda [IRDA] irda_device_dongle_init: fix kzalloc(GFP_KERNEL) in spinlock 2007-04-26 01:36:49 -07:00
iucv [AF_IUCV/IUCV]: smp_call_function deadlock 2007-04-28 23:03:59 -07:00
key [NET]: cleanup extra semicolons 2007-04-25 22:29:24 -07:00
lapb [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
llc [NET]: Rework dev_base via list_head (v3) 2007-05-03 15:13:45 -07:00
netfilter [NETLINK]: Possible cleanups. 2007-04-26 00:57:41 -07:00
netlabel SELinux: extract the NetLabel SELinux support from the security server 2007-04-26 01:35:48 -04:00
netlink [NETLINK]: Fix use after free in netlink_recvmsg 2007-05-03 03:27:01 -07:00
netrom [NET]: Rework dev_base via list_head (v3) 2007-05-03 15:13:45 -07:00
packet [AF_PACKET]: Add option to return orig_dev to userspace. 2007-04-25 22:29:14 -07:00
rose [NET]: Rework dev_base via list_head (v3) 2007-05-03 15:13:45 -07:00
rxrpc [AFS/AF_RXRPC]: Miscellaneous fixes. 2007-05-03 03:11:29 -07:00
sched [NET]: Rework dev_base via list_head (v3) 2007-05-03 15:13:45 -07:00
sctp [NET]: Rework dev_base via list_head (v3) 2007-05-03 15:13:45 -07:00
sunrpc [SUNRPC]: cleanup: use seq_release_private() where appropriate 2007-04-26 01:03:43 -07:00
tipc [NET]: Rework dev_base via list_head (v3) 2007-05-03 15:13:45 -07:00
unix [SK_BUFF]: Introduce skb_reset_transport_header(skb) 2007-04-25 22:25:15 -07:00
wanrouter [SK_BUFF]: Introduce skb_copy_to_linear_data{_offset} 2007-04-25 22:28:29 -07:00
wireless [WIRELESS] cfg80211: Clarify locking comment. 2007-04-26 20:51:12 -07:00
x25 [SK_BUFF]: Some more conversions to skb_copy_from_linear_data 2007-04-25 22:28:30 -07:00
xfrm [XFRM]: Restrict upper layer information by bundle. 2007-04-30 00:58:09 -07:00
compat.c [NET]: Adding SO_TIMESTAMPNS / SCM_TIMESTAMPNS support 2007-04-25 22:24:21 -07:00
Kconfig [AF_RXRPC]: Provide secure RxRPC sockets for use by userspace and kernel both 2007-04-26 15:48:28 -07:00
Makefile [AF_RXRPC]: Provide secure RxRPC sockets for use by userspace and kernel both 2007-04-26 15:48:28 -07:00
nonet.c [PATCH] Make most file operations structs in fs/ const 2006-03-28 09:16:06 -08:00
socket.c [SOCKET]: Export __sock_recv_timestamp 2007-04-25 22:24:22 -07:00
sysctl_net.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
TUNABLE Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00