tls: Do not call sk_memcopy_from_iter with zero length
In some conditions e.g. when tls_clone_plaintext_msg() returns -ENOSPC,
the number of bytes to be copied using subsequent function
sk_msg_memcopy_from_iter() becomes zero. This causes function
sk_msg_memcopy_from_iter() to fail which in turn causes tls_sw_sendmsg()
to return failure. To prevent it, do not call sk_msg_memcopy_from_iter()
when number of bytes to copy (indicated by 'try_to_copy') is zero.
Fixes: d829e9c411
("tls: convert to generic sk_msg interface")
Signed-off-by: Vakul Garg <vakul.garg@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
cbb49697d5
commit
65a10e28ae
|
@ -935,10 +935,12 @@ fallback_to_reg_send:
|
|||
tls_ctx->tx.overhead_size);
|
||||
}
|
||||
|
||||
ret = sk_msg_memcopy_from_iter(sk, &msg->msg_iter, msg_pl,
|
||||
try_to_copy);
|
||||
if (ret < 0)
|
||||
goto trim_sgl;
|
||||
if (try_to_copy) {
|
||||
ret = sk_msg_memcopy_from_iter(sk, &msg->msg_iter,
|
||||
msg_pl, try_to_copy);
|
||||
if (ret < 0)
|
||||
goto trim_sgl;
|
||||
}
|
||||
|
||||
/* Open records defined only if successfully copied, otherwise
|
||||
* we would trim the sg but not reset the open record frags.
|
||||
|
|
Loading…
Reference in New Issue