1
0
Fork 0
alistair23-linux/net/sctp
Vlad Yasevich 270637abff [SCTP]: Fix a race between module load and protosw access
There is a race is SCTP between the loading of the module
and the access by the socket layer to the protocol functions.
In particular, a list of addresss that SCTP maintains is
not initialized prior to the registration with the protosw.
Thus it is possible for a user application to gain access
to SCTP functions before everything has been initialized.
The problem shows up as odd crashes during connection
initializtion when we try to access the SCTP address list.

The solution is to refactor how we do registration and
initialize the lists prior to registering with the protosw.
Care must be taken since the address list initialization
depends on some other pieces of SCTP initialization.  Also
the clean-up in case of failure now also needs to be refactored.

Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Acked-by: Sridhar Samudrala <sri@us.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2008-03-20 15:17:14 -07:00
..
Kconfig [SCTP]: Use crc32c library for checksum calculations. 2008-01-28 14:58:20 -08:00
Makefile [SCTP]: Use crc32c library for checksum calculations. 2008-01-28 14:58:20 -08:00
associola.c [SCTP]: Fix kernel panic while received ASCONF chunk with bad serial number 2008-02-06 21:27:39 -05:00
auth.c [SCTP]: Update AUTH structures to match declarations in draft-16. 2008-02-28 16:45:04 -05:00
bind_addr.c [SCTP]: Fix local_addr deletions during list traversals. 2008-03-11 18:05:02 -07:00
chunk.c [SCTP]: Stop claiming that this is a "reference implementation" 2008-02-05 10:59:07 -05:00
command.c [SCTP]: Stop claiming that this is a "reference implementation" 2008-02-05 10:59:07 -05:00
debug.c [SCTP]: Stop claiming that this is a "reference implementation" 2008-02-05 10:59:07 -05:00
endpointola.c [SCTP]: Stop claiming that this is a "reference implementation" 2008-02-05 10:59:07 -05:00
input.c [SCTP]: fix misannotated __sctp_rcv_asconf_lookup() 2008-03-17 22:47:32 -07:00
inqueue.c [SCTP]: Stop claiming that this is a "reference implementation" 2008-02-05 10:59:07 -05:00
ipv6.c [SCTP]: Fix a race between module load and protosw access 2008-03-20 15:17:14 -07:00
objcnt.c [SCTP]: Use proc_create() to setup ->proc_fops first 2008-02-28 14:13:16 -08:00
output.c [SCTP]: Stop claiming that this is a "reference implementation" 2008-02-05 10:59:07 -05:00
outqueue.c [SCTP]: Make sure the chunk is off the transmitted list prior to freeing. 2008-02-06 21:27:39 -05:00
primitive.c [SCTP]: Stop claiming that this is a "reference implementation" 2008-02-05 10:59:07 -05:00
proc.c [SCTP]: Use proc_create to setup de->proc_fops. 2008-02-29 11:24:45 -08:00
protocol.c [SCTP]: Fix a race between module load and protosw access 2008-03-20 15:17:14 -07:00
sm_make_chunk.c SCTP: Fix chunk parameter processing bug 2008-03-05 13:43:32 -08:00
sm_sideeffect.c [SCTP]: Stop claiming that this is a "reference implementation" 2008-02-05 10:59:07 -05:00
sm_statefuns.c [SCTP]: Stop claiming that this is a "reference implementation" 2008-02-05 10:59:07 -05:00
sm_statetable.c [SCTP]: Stop claiming that this is a "reference implementation" 2008-02-05 10:59:07 -05:00
socket.c [SCTP]: Bring MAX_BURST socket option into ietf API extension compliance 2008-03-05 13:44:46 -08:00
ssnmap.c [SCTP]: Stop claiming that this is a "reference implementation" 2008-02-05 10:59:07 -05:00
sysctl.c [SCTP]: Stop claiming that this is a "reference implementation" 2008-02-05 10:59:07 -05:00
transport.c [SCTP]: Stop claiming that this is a "reference implementation" 2008-02-05 10:59:07 -05:00
tsnmap.c [SCTP]: Stop claiming that this is a "reference implementation" 2008-02-05 10:59:07 -05:00
ulpevent.c [SCTP]: Correctly set the length of sctp_assoc_change notification 2008-02-27 16:40:55 -05:00
ulpqueue.c [SCTP]: Correctly reap SSNs when processing FORWARD_TSN chunk 2008-02-06 21:26:26 -05:00