• Xin Long's avatar
    sctp: fix the processing for COOKIE_ECHO chunk · a64b341b
    Xin Long authored
    1. In closed state: in sctp_sf_do_5_1D_ce():
    
      When asoc is NULL, making packet for abort will use chunk's vtag
      in sctp_ootb_pkt_new(). But when asoc exists, vtag from the chunk
      should be verified before using peer.i.init_tag to make packet
      for abort in sctp_ootb_pkt_new(), and just discard it if vtag is
      not correct.
    
    2. In the other states: in sctp_sf_do_5_2_4_dupcook():
    
      asoc always exists, but duplicate cookie_echo's vtag will be
      handled by sctp_tietags_compare() and then take actions, so before
      that we only verify the vtag for the abort sent for invalid chunk
      length.
    
    Fixes: 1da177e4 ("Linux-2.6.12-rc2")
    Signed-off-by: default avatarXin Long <lucien.xin@gmail.com>
    Acked-by: default avatarMarcelo Ricardo Leitner <marcelo.leitner@gmail.com>
    Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    a64b341b
sm_statefuns.c 209 KB