sctp: fix the processing for INIT chunk
authorXin Long <lucien.xin@gmail.com>
Wed, 20 Oct 2021 11:42:42 +0000 (07:42 -0400)
committerJakub Kicinski <kuba@kernel.org>
Fri, 22 Oct 2021 19:36:43 +0000 (12:36 -0700)
commiteae5783908042a762c24e1bd11876edb91d314b1
tree7988b8a0250a6604c4885e103f373490a86aa392
parent4f7019c7eb33967eb87766e0e4602b5576873680
sctp: fix the processing for INIT chunk

This patch fixes the problems below:

1. In non-shutdown_ack_sent states: in sctp_sf_do_5_1B_init() and
   sctp_sf_do_5_2_2_dupinit():

  chunk length check should be done before any checks that may cause
  to send abort, as making packet for abort will access the init_tag
  from init_hdr in sctp_ootb_pkt_new().

2. In shutdown_ack_sent state: in sctp_sf_do_9_2_reshutack():

  The same checks as does in sctp_sf_do_5_2_2_dupinit() is needed
  for sctp_sf_do_9_2_reshutack().

Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Signed-off-by: Xin Long <lucien.xin@gmail.com>
Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/sctp/sm_statefuns.c