mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-02 15:18:19 +00:00
net/tls: handle MSG_EOR for tls_sw TX flow
tls_sw_sendmsg() already handles MSG_MORE, but bails out on MSG_EOR. Seeing that MSG_EOR is basically the opposite of MSG_MORE this patch adds handling MSG_EOR by treating it as the negation of MSG_MORE. And erroring out if MSG_EOR is specified with MSG_MORE. Signed-off-by: Hannes Reinecke <hare@suse.de> Reviewed-by: Jakub Kicinski <kuba@kernel.org> Link: https://lore.kernel.org/r/20230726191556.41714-2-hare@suse.de Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
6eaae19807
commit
e22e358bbe
1 changed files with 4 additions and 1 deletions
|
@ -984,6 +984,9 @@ static int tls_sw_sendmsg_locked(struct sock *sk, struct msghdr *msg,
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
int pending;
|
int pending;
|
||||||
|
|
||||||
|
if (!eor && (msg->msg_flags & MSG_EOR))
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
if (unlikely(msg->msg_controllen)) {
|
if (unlikely(msg->msg_controllen)) {
|
||||||
ret = tls_process_cmsg(sk, msg, &record_type);
|
ret = tls_process_cmsg(sk, msg, &record_type);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
|
@ -1193,7 +1196,7 @@ int tls_sw_sendmsg(struct sock *sk, struct msghdr *msg, size_t size)
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (msg->msg_flags & ~(MSG_MORE | MSG_DONTWAIT | MSG_NOSIGNAL |
|
if (msg->msg_flags & ~(MSG_MORE | MSG_DONTWAIT | MSG_NOSIGNAL |
|
||||||
MSG_CMSG_COMPAT | MSG_SPLICE_PAGES |
|
MSG_CMSG_COMPAT | MSG_SPLICE_PAGES | MSG_EOR |
|
||||||
MSG_SENDPAGE_NOPOLICY))
|
MSG_SENDPAGE_NOPOLICY))
|
||||||
return -EOPNOTSUPP;
|
return -EOPNOTSUPP;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue