]> git.karo-electronics.de Git - karo-tx-linux.git/commit
sctp: Fix oops when INIT-ACK indicates that peer doesn't support AUTH
authorVlad Yasevich <vladislav.yasevich@hp.com>
Thu, 18 Sep 2008 23:28:27 +0000 (16:28 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 9 Oct 2008 02:44:45 +0000 (19:44 -0700)
commitbb5168ca75d488ee10e4653ddbf4cd51a57707f3
treea9579ead1829a8be1262e7b473b7b4ef5cc76b30
parentb18dfc326dd814b63abd0a484e3e300300065edc
sctp: Fix oops when INIT-ACK indicates that peer doesn't support AUTH

[ Upstream commit add52379dde2e5300e2d574b172e62c6cf43b3d3 ]

If INIT-ACK is received with SupportedExtensions parameter which
indicates that the peer does not support AUTH, the packet will be
silently ignore, and sctp_process_init() do cleanup all of the
transports in the association.
When T1-Init timer is expires, OOPS happen while we try to choose
a different init transport.

The solution is to only clean up the non-active transports, i.e
the ones that the peer added.  However, that introduces a problem
with sctp_connectx(), because we don't mark the proper state for
the transports provided by the user.  So, we'll simply mark
user-provided transports as ACTIVE.  That will allow INIT
retransmissions to work properly in the sctp_connectx() context
and prevent the crash.

Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
net/sctp/associola.c
net/sctp/sm_make_chunk.c