Commit 6df9cfc1 authored by Vlad Yasevich's avatar Vlad Yasevich Committed by David S. Miller

[SCTP]: Correctly handle AUTH parameters in unexpected INIT

When processing an unexpected INIT chunk, we do not need to
do any preservation of the old AUTH parameters.  In fact,
doing such preservations will nullify AUTH and allow connection
stealing.
Signed-off-by: default avatarVlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent f691724c
...@@ -1309,26 +1309,6 @@ static void sctp_tietags_populate(struct sctp_association *new_asoc, ...@@ -1309,26 +1309,6 @@ static void sctp_tietags_populate(struct sctp_association *new_asoc,
new_asoc->c.initial_tsn = asoc->c.initial_tsn; new_asoc->c.initial_tsn = asoc->c.initial_tsn;
} }
static void sctp_auth_params_populate(struct sctp_association *new_asoc,
const struct sctp_association *asoc)
{
/* Only perform this if AUTH extension is enabled */
if (!sctp_auth_enable)
return;
/* We need to provide the same parameter information as
* was in the original INIT. This means that we need to copy
* the HMACS, CHUNKS, and RANDOM parameter from the original
* assocaition.
*/
memcpy(new_asoc->c.auth_random, asoc->c.auth_random,
sizeof(asoc->c.auth_random));
memcpy(new_asoc->c.auth_hmacs, asoc->c.auth_hmacs,
sizeof(asoc->c.auth_hmacs));
memcpy(new_asoc->c.auth_chunks, asoc->c.auth_chunks,
sizeof(asoc->c.auth_chunks));
}
/* /*
* Compare vtag/tietag values to determine unexpected COOKIE-ECHO * Compare vtag/tietag values to determine unexpected COOKIE-ECHO
* handling action. * handling action.
...@@ -1486,8 +1466,6 @@ static sctp_disposition_t sctp_sf_do_unexpected_init( ...@@ -1486,8 +1466,6 @@ static sctp_disposition_t sctp_sf_do_unexpected_init(
sctp_tietags_populate(new_asoc, asoc); sctp_tietags_populate(new_asoc, asoc);
sctp_auth_params_populate(new_asoc, asoc);
/* B) "Z" shall respond immediately with an INIT ACK chunk. */ /* B) "Z" shall respond immediately with an INIT ACK chunk. */
/* If there are errors need to be reported for unknown parameters, /* If there are errors need to be reported for unknown parameters,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment