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