diff options
-rw-r--r-- | net/sctp/sm_statefuns.c | 6 |
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 | ||