sctp: check the unrecognized ASCONF parameter before access it
This patch fix to check the unrecognized ASCONF parameter before access it. Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com> Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
This commit is contained in:
committed by
Vlad Yasevich
parent
425e0f6852
commit
44e65c1ef1
@ -2861,6 +2861,11 @@ static __be16 sctp_process_asconf_param(struct sctp_association *asoc,
|
|||||||
addr_param = (union sctp_addr_param *)
|
addr_param = (union sctp_addr_param *)
|
||||||
((void *)asconf_param + sizeof(sctp_addip_param_t));
|
((void *)asconf_param + sizeof(sctp_addip_param_t));
|
||||||
|
|
||||||
|
if (asconf_param->param_hdr.type != SCTP_PARAM_ADD_IP &&
|
||||||
|
asconf_param->param_hdr.type != SCTP_PARAM_DEL_IP &&
|
||||||
|
asconf_param->param_hdr.type != SCTP_PARAM_SET_PRIMARY)
|
||||||
|
return SCTP_ERROR_UNKNOWN_PARAM;
|
||||||
|
|
||||||
switch (addr_param->v4.param_hdr.type) {
|
switch (addr_param->v4.param_hdr.type) {
|
||||||
case SCTP_PARAM_IPV6_ADDRESS:
|
case SCTP_PARAM_IPV6_ADDRESS:
|
||||||
if (!asoc->peer.ipv6_address)
|
if (!asoc->peer.ipv6_address)
|
||||||
@ -2958,9 +2963,6 @@ static __be16 sctp_process_asconf_param(struct sctp_association *asoc,
|
|||||||
|
|
||||||
sctp_assoc_set_primary(asoc, peer);
|
sctp_assoc_set_primary(asoc, peer);
|
||||||
break;
|
break;
|
||||||
default:
|
|
||||||
return SCTP_ERROR_UNKNOWN_PARAM;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return SCTP_ERROR_NO_ERROR;
|
return SCTP_ERROR_NO_ERROR;
|
||||||
|
Reference in New Issue
Block a user