Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 65a10e28 authored by Vakul Garg's avatar Vakul Garg Committed by David S. Miller
Browse files

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: d829e9c4 ("tls: convert to generic sk_msg interface")
Signed-off-by: default avatarVakul Garg <vakul.garg@nxp.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent cbb49697
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -935,10 +935,12 @@ int tls_sw_sendmsg(struct sock *sk, struct msghdr *msg, size_t size)
				    tls_ctx->tx.overhead_size);
		}

		ret = sk_msg_memcopy_from_iter(sk, &msg->msg_iter, msg_pl,
					       try_to_copy);
		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.