summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/sctp/sm_statefuns.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/net/sctp/sm_statefuns.c b/net/sctp/sm_statefuns.c
index 2c244b29a199..0c21c52fc408 100644
--- a/net/sctp/sm_statefuns.c
+++ b/net/sctp/sm_statefuns.c
@@ -3721,7 +3721,8 @@ enum sctp_disposition sctp_sf_do_asconf(struct net *net,
3721 * is received unauthenticated it MUST be silently discarded as 3721 * is received unauthenticated it MUST be silently discarded as
3722 * described in [I-D.ietf-tsvwg-sctp-auth]. 3722 * described in [I-D.ietf-tsvwg-sctp-auth].
3723 */ 3723 */
3724 if (!net->sctp.addip_noauth && !chunk->auth) 3724 if (!asoc->peer.asconf_capable ||
3725 (!net->sctp.addip_noauth && !chunk->auth))
3725 return sctp_sf_discard_chunk(net, ep, asoc, type, arg, 3726 return sctp_sf_discard_chunk(net, ep, asoc, type, arg,
3726 commands); 3727 commands);
3727 3728
@@ -3863,7 +3864,8 @@ enum sctp_disposition sctp_sf_do_asconf_ack(struct net *net,
3863 * is received unauthenticated it MUST be silently discarded as 3864 * is received unauthenticated it MUST be silently discarded as
3864 * described in [I-D.ietf-tsvwg-sctp-auth]. 3865 * described in [I-D.ietf-tsvwg-sctp-auth].
3865 */ 3866 */
3866 if (!net->sctp.addip_noauth && !asconf_ack->auth) 3867 if (!asoc->peer.asconf_capable ||
3868 (!net->sctp.addip_noauth && !asconf_ack->auth))
3867 return sctp_sf_discard_chunk(net, ep, asoc, type, arg, 3869 return sctp_sf_discard_chunk(net, ep, asoc, type, arg,
3868 commands); 3870 commands);
3869 3871