diff options
author | Xin Long <lucien.xin@gmail.com> | 2019-09-09 15:33:29 +0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-09-10 18:32:28 +0100 |
commit | f794dc2304d83ab998c2eee5bab0549aff5c53a2 (patch) | |
tree | 123418cdb123b6ea9efab1a133e1002b81de2380 | |
parent | d4d6ec6dac07f263f06d847d6f732d6855522845 (diff) | |
download | linux-stable-f794dc2304d83ab998c2eee5bab0549aff5c53a2.tar.gz linux-stable-f794dc2304d83ab998c2eee5bab0549aff5c53a2.tar.bz2 linux-stable-f794dc2304d83ab998c2eee5bab0549aff5c53a2.zip |
sctp: fix the missing put_user when dumping transport thresholds
This issue causes SCTP_PEER_ADDR_THLDS sockopt not to be able to dump
a transport thresholds info.
Fix it by adding 'goto' put_user in sctp_getsockopt_paddr_thresholds.
Fixes: 8add543e369d ("sctp: add SCTP_FUTURE_ASSOC for SCTP_PEER_ADDR_THLDS sockopt")
Signed-off-by: Xin Long <lucien.xin@gmail.com>
Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | net/sctp/socket.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/sctp/socket.c b/net/sctp/socket.c index 9d1f83b10c0a..ad8751891b00 100644 --- a/net/sctp/socket.c +++ b/net/sctp/socket.c @@ -7173,7 +7173,7 @@ static int sctp_getsockopt_paddr_thresholds(struct sock *sk, val.spt_pathmaxrxt = trans->pathmaxrxt; val.spt_pathpfthld = trans->pf_retrans; - return 0; + goto out; } asoc = sctp_id2assoc(sk, val.spt_assoc_id); @@ -7191,6 +7191,7 @@ static int sctp_getsockopt_paddr_thresholds(struct sock *sk, val.spt_pathmaxrxt = sp->pathmaxrxt; } +out: if (put_user(len, optlen) || copy_to_user(optval, &val, len)) return -EFAULT; |