sctp: check asoc peer.asconf_capable before processing asconf

asconf chunks should be dropped when the asoc doesn't support
asconf feature.

Signed-off-by: Xin Long <lucien.xin@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Xin Long 2019-08-19 22:02:45 +08:00 committed by David S. Miller
parent bb2ded2602
commit a2eeacc830
1 changed files with 4 additions and 2 deletions

View File

@ -3721,7 +3721,8 @@ enum sctp_disposition sctp_sf_do_asconf(struct net *net,
* is received unauthenticated it MUST be silently discarded as * is received unauthenticated it MUST be silently discarded as
* described in [I-D.ietf-tsvwg-sctp-auth]. * described in [I-D.ietf-tsvwg-sctp-auth].
*/ */
if (!net->sctp.addip_noauth && !chunk->auth) if (!asoc->peer.asconf_capable ||
(!net->sctp.addip_noauth && !chunk->auth))
return sctp_sf_discard_chunk(net, ep, asoc, type, arg, return sctp_sf_discard_chunk(net, ep, asoc, type, arg,
commands); commands);
@ -3863,7 +3864,8 @@ enum sctp_disposition sctp_sf_do_asconf_ack(struct net *net,
* is received unauthenticated it MUST be silently discarded as * is received unauthenticated it MUST be silently discarded as
* described in [I-D.ietf-tsvwg-sctp-auth]. * described in [I-D.ietf-tsvwg-sctp-auth].
*/ */
if (!net->sctp.addip_noauth && !asconf_ack->auth) if (!asoc->peer.asconf_capable ||
(!net->sctp.addip_noauth && !asconf_ack->auth))
return sctp_sf_discard_chunk(net, ep, asoc, type, arg, return sctp_sf_discard_chunk(net, ep, asoc, type, arg,
commands); commands);