• Dave Watson's avatar
    tls: Stricter error checking in zerocopy sendmsg path · 30a7a7b0
    Dave Watson authored
    commit 32da1221 upstream.
    
    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 after
    a447da7d
    
     ("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: default avatarDave Watson <davejwatson@fb.com>
    Fixes: 3c4d7559
    
     ("tls: kernel TLS support")
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    30a7a7b0
tls_sw.c 19 KB