diff --git a/net/tls/tls_sw.c b/net/tls/tls_sw.c index fb7428f222a8..910da98d6bfb 100644 --- a/net/tls/tls_sw.c +++ b/net/tls/tls_sw.c @@ -1780,7 +1780,7 @@ int tls_sw_recvmsg(struct sock *sk, } copied = err; - if (len <= copied) + if (len <= copied || (copied && control != TLS_RECORD_TYPE_DATA)) goto end; target = sock_rcvlowat(sk, flags & MSG_WAITALL, len);