Skip to content

Commit

Permalink
sctp: fix the error code when ASCONF is received with invalid address
Browse files Browse the repository at this point in the history
Use Unresolvable Address error cause instead of Invalid Mandatory
Parameter error cause when process ASCONF chunk with invalid address
since address parameters are not mandatory in the ASCONF chunk.

Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com>
Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
  • Loading branch information
Wei Yongjun authored and Vlad Yasevich committed Jun 3, 2009
1 parent a987f76 commit 945e5ab
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions net/sctp/sm_make_chunk.c
Original file line number Diff line number Diff line change
Expand Up @@ -2864,19 +2864,19 @@ static __be16 sctp_process_asconf_param(struct sctp_association *asoc,
switch (addr_param->v4.param_hdr.type) {
case SCTP_PARAM_IPV6_ADDRESS:
if (!asoc->peer.ipv6_address)
return SCTP_ERROR_INV_PARAM;
return SCTP_ERROR_DNS_FAILED;
break;
case SCTP_PARAM_IPV4_ADDRESS:
if (!asoc->peer.ipv4_address)
return SCTP_ERROR_INV_PARAM;
return SCTP_ERROR_DNS_FAILED;
break;
default:
return SCTP_ERROR_INV_PARAM;
return SCTP_ERROR_DNS_FAILED;
}

af = sctp_get_af_specific(param_type2af(addr_param->v4.param_hdr.type));
if (unlikely(!af))
return SCTP_ERROR_INV_PARAM;
return SCTP_ERROR_DNS_FAILED;

af->from_addr_param(&addr, addr_param, htons(asoc->peer.port), 0);

Expand All @@ -2886,7 +2886,7 @@ static __be16 sctp_process_asconf_param(struct sctp_association *asoc,
* make sure we check for that)
*/
if (!af->is_any(&addr) && !af->addr_valid(&addr, NULL, asconf->skb))
return SCTP_ERROR_INV_PARAM;
return SCTP_ERROR_DNS_FAILED;

switch (asconf_param->param_hdr.type) {
case SCTP_PARAM_ADD_IP:
Expand Down Expand Up @@ -2954,7 +2954,7 @@ static __be16 sctp_process_asconf_param(struct sctp_association *asoc,

peer = sctp_assoc_lookup_paddr(asoc, &addr);
if (!peer)
return SCTP_ERROR_INV_PARAM;
return SCTP_ERROR_DNS_FAILED;

sctp_assoc_set_primary(asoc, peer);
break;
Expand Down

0 comments on commit 945e5ab

Please sign in to comment.