diff options
author | Ursula Braun <ubraun@linux.vnet.ibm.com> | 2018-03-27 11:43:50 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-03-27 18:59:49 +0300 |
commit | ab6f6dd18ab801fcbbaa05fb5401e91f48778e04 (patch) | |
tree | d8b0c9a66ef652d1dca49cd06ed83846fe9816f8 /net | |
parent | b85ab56c3f81c5a24b5a5213374f549df06430da (diff) | |
download | linux-ab6f6dd18ab801fcbbaa05fb5401e91f48778e04.tar.xz |
net/smc: use announced length in sock_recvmsg()
Not every CLC proposal message needs the maximum buffer length.
Due to the MSG_WAITALL flag, it is important to use the peeked
real length when receiving the message.
Fixes: d63d271ce2b5ce ("smc: switch to sock_recvmsg()")
Signed-off-by: Ursula Braun <ubraun@linux.vnet.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/smc/smc_clc.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/smc/smc_clc.c b/net/smc/smc_clc.c index 8ac51583a063..15c213250606 100644 --- a/net/smc/smc_clc.c +++ b/net/smc/smc_clc.c @@ -133,7 +133,7 @@ int smc_clc_wait_msg(struct smc_sock *smc, void *buf, int buflen, /* receive the complete CLC message */ memset(&msg, 0, sizeof(struct msghdr)); - iov_iter_kvec(&msg.msg_iter, READ | ITER_KVEC, &vec, 1, buflen); + iov_iter_kvec(&msg.msg_iter, READ | ITER_KVEC, &vec, 1, datlen); krflags = MSG_WAITALL; smc->clcsock->sk->sk_rcvtimeo = CLC_WAIT_TIME; len = sock_recvmsg(smc->clcsock, &msg, krflags); |