diff options
author | Michael Tuexen <tuexen@FreeBSD.org> | 2021-05-04 16:42:31 +0000 |
---|---|---|
committer | Michael Tuexen <tuexen@FreeBSD.org> | 2021-06-02 21:55:37 +0000 |
commit | a2fdddf83e8cc2c17d838f09f9601fd210457e74 (patch) | |
tree | 659e2cd273deee50c84ffc3cf6be2586b8d40241 | |
parent | 50948b57070f91d8c99807bb7a698659bfbda6b4 (diff) | |
download | src-a2fdddf83e8cc2c17d838f09f9601fd210457e74.tar.gz src-a2fdddf83e8cc2c17d838f09f9601fd210457e74.zip |
sctp: drop packet with SHUTDOWN-ACK chunks with wrong vtags
(cherry picked from commit b621fbb1bf1b2a1e6ea22e0ad2d7667b1aec9fae)
-rw-r--r-- | sys/netinet/sctp_input.c | 21 |
1 files changed, 0 insertions, 21 deletions
diff --git a/sys/netinet/sctp_input.c b/sys/netinet/sctp_input.c index b6fe6449bc21..e1f096ea5817 100644 --- a/sys/netinet/sctp_input.c +++ b/sys/netinet/sctp_input.c @@ -4502,27 +4502,6 @@ sctp_process_control(struct mbuf *m, int iphlen, int *offset, int length, } return (NULL); } - } else if (ch->chunk_type == SCTP_SHUTDOWN_ACK) { - if (vtag_in != asoc->my_vtag) { - /* - * this could be a stale SHUTDOWN-ACK or the - * peer never got the SHUTDOWN-COMPLETE and - * is still hung; we have started a new asoc - * but it won't complete until the shutdown - * is completed - */ - if (stcb != NULL) { - SCTP_TCB_UNLOCK(stcb); - } - SCTP_SNPRINTF(msg, sizeof(msg), "OOTB, %s:%d at %s", __FILE__, __LINE__, __func__); - op_err = sctp_generate_cause(SCTP_BASE_SYSCTL(sctp_diag_info_code), - msg); - sctp_handle_ootb(m, iphlen, *offset, src, dst, - sh, inp, op_err, - mflowtype, mflowid, fibnum, - vrf_id, port); - return (NULL); - } } else { /* for all other chunks, vtag must match */ if (vtag_in != asoc->my_vtag) { |