linux/net
Vlad Yasevich bdf6fa52f0 sctp: handle association restarts when the socket is closed.
Currently association restarts do not take into consideration the
state of the socket.  When a restart happens, the current assocation
simply transitions into established state.  This creates a condition
where a remote system, through a the restart procedure, may create a
local association that is no way reachable by user.  The conditions
to trigger this are as follows:
  1) Remote does not acknoledge some data causing data to remain
     outstanding.
  2) Local application calls close() on the socket.  Since data
     is still outstanding, the association is placed in SHUTDOWN_PENDING
     state.  However, the socket is closed.
  3) The remote tries to create a new association, triggering a restart
     on the local system.  The association moves from SHUTDOWN_PENDING
     to ESTABLISHED.  At this point, it is no longer reachable by
     any socket on the local system.

This patch addresses the above situation by moving the newly ESTABLISHED
association into SHUTDOWN-SENT state and bundling a SHUTDOWN after
the COOKIE-ACK chunk.  This way, the restarted associate immidiately
enters the shutdown procedure and forces the termination of the
unreachable association.

Reported-by: David Laight <David.Laight@aculab.com>
Signed-off-by: Vlad Yasevich <vyasevich@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-10-06 00:21:45 -04:00
..
6lowpan
9p
802
8021q
appletalk
atm lec: Use rtnl lock/unlock when updating MTU 2014-08-21 16:31:23 -07:00
ax25
batman-adv
bluetooth Bluetooth: Fix hci_conn reference counting for auto-connections 2014-08-20 21:57:39 +03:00
bridge bridge: Fix br_should_learn to check vlan_enabled 2014-09-15 17:38:30 -04:00
caif
can
ceph libceph: do not hard code max auth ticket len 2014-09-10 20:08:36 +04:00
core gro: fix aggregation for skb using frag_list 2014-09-29 15:17:59 -04:00
dcb
dccp
decnet
dns_resolver
dsa
ethernet
hsr
ieee802154 ieee802154: 6lowpan: ensure MTU of 1280 for 6lowpan 2014-08-19 19:17:42 +02:00
ipv4 neigh: check error pointer instead of NULL for ipv4_neigh_lookup() 2014-09-28 17:16:04 -04:00
ipv6 ip6_gre: fix flowi6_proto value in xmit path 2014-10-04 20:08:24 -04:00
ipx
irda
iucv
key
l2tp l2tp: fix race while getting PMTU on PPP pseudo-wire 2014-09-05 14:40:18 -07:00
lapb
llc
mac80211 Two more fixes for mac80211 - one of them addresses a long-standing 2014-09-09 14:29:36 -04:00
mac802154 ieee802154: mac802154: handle the reserved dest mode by dropping the packet 2014-08-19 19:17:41 +02:00
mpls
netfilter Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf 2014-09-26 16:21:29 -04:00
netlabel
netlink
netrom
nfc
openvswitch openvswitch: restore OVS_FLOW_CMD_NEW notifications 2014-09-19 17:28:26 -04:00
packet packet: handle too big packets for PACKET_V3 2014-08-21 16:44:28 -07:00
phonet
rds net/rds: fix possible double free on sock tear down 2014-10-03 12:52:00 -07:00
rfkill net: rfkill: gpio: Fix clock status 2014-09-22 16:02:15 -04:00
rose
rxrpc RxRPC: Fix missing __user annotation 2014-09-09 20:39:40 -07:00
sched ematch: Fix early ending of inverted containers. 2014-10-04 20:49:46 -04:00
sctp sctp: handle association restarts when the socket is closed. 2014-10-06 00:21:45 -04:00
sunrpc
tipc tipc: Fix build. 2014-08-19 11:16:38 -07:00
unix
vmw_vsock
wimax
wireless nl80211: clear skb cb before passing to netlink 2014-09-03 11:13:14 +02:00
x25
xfrm xfrm: Generate queueing routes only from route lookup functions 2014-09-16 10:08:49 +02:00
compat.c
Kconfig
Makefile
nonet.c
socket.c net:socket: set msg_namelen to 0 if msg_name is passed as NULL in msghdr struct from userland. 2014-09-09 17:35:46 -07:00
sysctl_net.c