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:
Родитель
425e0f6852
Коммит
44e65c1ef1
|
@ -2861,6 +2861,11 @@ static __be16 sctp_process_asconf_param(struct sctp_association *asoc,
|
|||
addr_param = (union sctp_addr_param *)
|
||||
((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) {
|
||||
case SCTP_PARAM_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);
|
||||
break;
|
||||
default:
|
||||
return SCTP_ERROR_UNKNOWN_PARAM;
|
||||
break;
|
||||
}
|
||||
|
||||
return SCTP_ERROR_NO_ERROR;
|
||||
|
|
Загрузка…
Ссылка в новой задаче