net: sctp: sctp_sf_do_prm_asoc: do SCTP_CMD_INIT_CHOOSE_TRANSPORT first
authorDaniel Borkmann <dborkman@redhat.com>
Fri, 14 Jun 2013 16:24:05 +0000 (18:24 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 14 Jun 2013 22:38:36 +0000 (15:38 -0700)
commit405426f6ca8ac2d8d5b1f8eb9285452d44222781
tree68235376e74e26192a52ced0ac7cc5f6c0b67d58
parentf9e42b853523cda0732022c2e0473c183f7aec65
net: sctp: sctp_sf_do_prm_asoc: do SCTP_CMD_INIT_CHOOSE_TRANSPORT first

While this currently cannot trigger any NULL pointer dereference in
sctp_seq_dump_local_addrs(), better change the order of commands to
prevent a future bug to happen. Although we first add SCTP_CMD_NEW_ASOC
and then set the SCTP_CMD_INIT_CHOOSE_TRANSPORT, it is okay for now,
since this primitive is only called by sctp_connect() or sctp_sendmsg()
with sctp_assoc_add_peer() set first. However, lets do this precaution
and first set the transport and then add it to the association hashlist
to prevent in future something to possibly triggering this.

Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
Acked-by: Vlad Yasevich <vyasevich@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sctp/sm_statefuns.c