Commit b99e5e02 authored by Xin Long's avatar Xin Long Committed by David S. Miller

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: default avatarXin Long <lucien.xin@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 80df2704
...@@ -2750,12 +2750,13 @@ static int sctp_setsockopt_peer_addr_params(struct sock *sk, ...@@ -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, ...@@ -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;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment