mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-04 18:19:28 +09:00
tls: Stricter error checking in zerocopy sendmsg path
commit32da12216eupstream. In the zerocopy sendmsg() path, there are error checks to revert the zerocopy if we get any error code. syzkaller has discovered that tls_push_record can return -ECONNRESET, which is fatal, and happens after the point at which it is safe to revert the iter, as we've already passed the memory to do_tcp_sendpages. Previously this code could return -ENOMEM and we would want to revert the iter, but AFAIK this no longer returns ENOMEM aftera447da7d00("tls: fix waitall behavior in tls_sw_recvmsg"), so we fail for all error codes. Reported-by: syzbot+c226690f7b3126c5ee04@syzkaller.appspotmail.com Reported-by: syzbot+709f2810a6a05f11d4d3@syzkaller.appspotmail.com Signed-off-by: Dave Watson <davejwatson@fb.com> Fixes:3c4d755915("tls: kernel TLS support") Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
d9bb71d76c
commit
30a7a7b04f
@@ -449,7 +449,7 @@ alloc_encrypted:
|
||||
ret = tls_push_record(sk, msg->msg_flags, record_type);
|
||||
if (!ret)
|
||||
continue;
|
||||
if (ret == -EAGAIN)
|
||||
if (ret < 0)
|
||||
goto send_end;
|
||||
|
||||
copied -= try_to_copy;
|
||||
|
||||
Reference in New Issue
Block a user