• Vlad Yasevich's avatar
    sctp: Fix oops when INIT-ACK indicates that peer doesn't support AUTH · ce8fd8b9
    Vlad Yasevich authored
    [ Upstream commit add52379 ]
    
    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: default avatarVlad Yasevich <vladislav.yasevich@hp.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    ce8fd8b9
associola.c 42.8 KB