sctp: use SCTP_FUTURE_ASSOC for SCTP_PEER_ADDR_PARAMS sockopt
Check with SCTP_FUTURE_ASSOC instead in sctp_/setgetsockopt_peer_addr_params, it's compatible with 0. Signed-off-by: Xin Long <lucien.xin@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
80df2704a3
commit
b99e5e028b
@ -2750,12 +2750,13 @@ static int sctp_setsockopt_peer_addr_params(struct sock *sk,
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get association, if assoc_id != 0 and the socket is a one
|
/* Get association, if assoc_id != SCTP_FUTURE_ASSOC and the
|
||||||
* to many style socket, and an association was not found, then
|
* socket is a one to many style socket, and an association
|
||||||
* the id was invalid.
|
* was not found, then the id was invalid.
|
||||||
*/
|
*/
|
||||||
asoc = sctp_id2assoc(sk, params.spp_assoc_id);
|
asoc = sctp_id2assoc(sk, params.spp_assoc_id);
|
||||||
if (!asoc && params.spp_assoc_id && sctp_style(sk, UDP))
|
if (!asoc && params.spp_assoc_id != SCTP_FUTURE_ASSOC &&
|
||||||
|
sctp_style(sk, UDP))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
/* Heartbeat demand can only be sent on a transport or
|
/* Heartbeat demand can only be sent on a transport or
|
||||||
@ -5676,12 +5677,13 @@ static int sctp_getsockopt_peer_addr_params(struct sock *sk, int len,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get association, if assoc_id != 0 and the socket is a one
|
/* Get association, if assoc_id != SCTP_FUTURE_ASSOC and the
|
||||||
* to many style socket, and an association was not found, then
|
* socket is a one to many style socket, and an association
|
||||||
* the id was invalid.
|
* was not found, then the id was invalid.
|
||||||
*/
|
*/
|
||||||
asoc = sctp_id2assoc(sk, params.spp_assoc_id);
|
asoc = sctp_id2assoc(sk, params.spp_assoc_id);
|
||||||
if (!asoc && params.spp_assoc_id && sctp_style(sk, UDP)) {
|
if (!asoc && params.spp_assoc_id != SCTP_FUTURE_ASSOC &&
|
||||||
|
sctp_style(sk, UDP)) {
|
||||||
pr_debug("%s: failed no association\n", __func__);
|
pr_debug("%s: failed no association\n", __func__);
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user