RFC 4960 requires that packets containing an INIT chunk bundled with

another chunk are silently discarded. Do so, instead of sending an
ABORT.

MFC after:	1 week
This commit is contained in:
Michael Tuexen 2015-09-07 14:00:38 +00:00
parent db7bf2baae
commit 0941640f34

View File

@ -4819,13 +4819,11 @@ __attribute__((noinline))
/* The INIT chunk must be the only chunk. */
if ((num_chunks > 1) ||
(length - *offset > (int)SCTP_SIZE32(chk_length))) {
op_err = sctp_generate_cause(SCTP_BASE_SYSCTL(sctp_diag_info_code),
"INIT not the only chunk");
sctp_abort_association(inp, stcb, m, iphlen,
src, dst, sh, op_err,
mflowtype, mflowid,
vrf_id, port);
/* RFC 4960 requires that no ABORT is sent */
*offset = length;
if (locked_tcb) {
SCTP_TCB_UNLOCK(locked_tcb);
}
return (NULL);
}
/* Honor our resource limit. */