Hello. On 8/24/2015 1:07 PM, Xin Long wrote:
currently, we sctp_walk_params(), if we encounter the address parameter, we will skip them, we do not care about how many addr params are there. but the params of ASCONF chunk should consist of one *Address Parameter* and one or more *ASCONF Parameters*. so we will process multiple address parameters as unrecognized parameter and send error cause to peer. Signed-off-by: Xin Long <lucien....@gmail.com> --- net/sctp/sm_make_chunk.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/net/sctp/sm_make_chunk.c b/net/sctp/sm_make_chunk.c index 06320c8..0ee5ca7 100644 --- a/net/sctp/sm_make_chunk.c +++ b/net/sctp/sm_make_chunk.c @@ -3217,10 +3217,18 @@ struct sctp_chunk *sctp_process_asconf(struct sctp_association *asoc, /* Process the TLVs contained within the ASCONF chunk. */ sctp_walk_params(param, addip, addip_hdr.params) { - /* Skip preceeding address parameters. */ + /* Skip preceeding address parameters. + * process multi-addrparam as unrecognized parameters + */ if (param.p->type == SCTP_PARAM_IPV4_ADDRESS || - param.p->type == SCTP_PARAM_IPV6_ADDRESS) + param.p->type == SCTP_PARAM_IPV6_ADDRESS) { + if(param.addr != addr_param) {
Space needed after *if*.
+ all_param_pass = false; + sctp_add_asconf_response(asconf_ack, 0, + SCTP_ERROR_UNKNOWN_PARAM, param.v);
Please start the continuation line under 'asconf_ack'. [...] MBR, Sergei -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html