Received: by 2002:a05:6622:f08:0:0:0:0 with SMTP id l8csp4479340ivc; Tue, 3 Nov 2020 13:06:39 -0800 (PST) X-Google-Smtp-Source: ABdhPJxAHERlCtrJ7L8w6c4fsY1hiGbxuodmsjJl4YZR/q829zXzadNdz8ueF3yCRDy+6iJU7D1a X-Received: by 2002:a17:906:90da:: with SMTP id v26mr7412268ejw.367.1604437598932; Tue, 03 Nov 2020 13:06:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1604437598; cv=none; d=google.com; s=arc-20160816; b=NtUa3D/tEGFcLs2Np8DKx0Yo+HnGsWV5fscNT07xfSpnZ04zhTTxWKVvUZnQ/aenSQ QFt6Vc95v3mHk8Mc/hFfZL6ize5tRlDMejESQjnwx7Bs0Iwr4fhQVZrCOsOpxZ/LRijR BH8CqNcTqWUH8fztuB3ksu2hHGOYjHPyNL2mYZRd96+dms0qKvkYvoy00TFrxFIcDLAx AFNc6l7bCHk/P+hVV3fb47ctYsPDW+V4NZ5CTG0mIRFAO2RZHpVYW21jKsBPA7Ih2uEk 88XvQKf9lmTLEYD0gRZKkYjWGodAoZ+phzCH5LH/rSxq9sw1hsSSP4F4iuHSTftazz/5 PmZA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=StTAX9XoGMVgzaP8Batd8xikmpaw8+m5c+g3F8biGT8=; b=KddV5G0bxfAUPbTUKZ/Lph4oWReTEpDYKdBbvRQa19N28W5136wcp0vCjzCppgh0FD yvS5wS25CrXOZnuwGK542K/0oE5gYvagVqm3QnXWmWrSvyX6BKyeUSSpuR1BPtXaqJfb gfovw9i8qEW67fhInclCTJYwKv1HM+lBkINnC/9Gyua2ugIMNDbMPZMR1HzQAEeisPcR Ugw7uRHd0V/Sb5Ub4QIrT8aI1dm9DJfhWqWB7qONUqzWgJH3NENRCZa5giZOKy3sDls3 5+Q42iXBnj2KtiiCL57T7mv1Pyynjj9GGGLYT7mEF6eKjf/4daz6t/dsuNJ10M8zO58i Viaw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=RXUklTkC; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id k1si18089315edf.460.2020.11.03.13.06.16; Tue, 03 Nov 2020 13:06:38 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=RXUklTkC; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387705AbgKCVCy (ORCPT + 99 others); Tue, 3 Nov 2020 16:02:54 -0500 Received: from mail.kernel.org ([198.145.29.99]:40108 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1733101AbgKCVCw (ORCPT ); Tue, 3 Nov 2020 16:02:52 -0500 Received: from localhost (83-86-74-64.cable.dynamic.v4.ziggo.nl [83.86.74.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 9F91820658; Tue, 3 Nov 2020 21:02:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1604437370; bh=FD9pNP4izVVvDGZgBFNR/ecRqnGuP3Ya3ZqocDXOD3k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RXUklTkCXRYR9bE/Aj2Bin2qr21GoE8x4ngox0/O/U/pKAXF/Uy5Y5e2G1vvsYUPB MPqV5LFjNR8kXN4/o1bz1UN+31pWlocjFw6hhs/dRZ9+Zb4FiHih1BcLUmbNG6UupN z8B5pwq3vcQ0VmRRHi45bvM49JYbncUBpF1s1OiY= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Vinay Kumar Yadav , Jakub Kicinski Subject: [PATCH 4.19 009/191] chelsio/chtls: fix tls record info to user Date: Tue, 3 Nov 2020 21:35:01 +0100 Message-Id: <20201103203233.869913919@linuxfoundation.org> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20201103203232.656475008@linuxfoundation.org> References: <20201103203232.656475008@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Vinay Kumar Yadav [ Upstream commit 4f3391ce8f5a69e7e6d66d0a3fc654eb6dbdc919 ] chtls_pt_recvmsg() receives a skb with tls header and subsequent skb with data, need to finalize the data copy whenever next skb with tls header is available. but here current tls header is overwritten by next available tls header, ends up corrupting user buffer data. fixing it by finalizing current record whenever next skb contains tls header. v1->v2: - Improved commit message. Fixes: 17a7d24aa89d ("crypto: chtls - generic handling of data and hdr") Signed-off-by: Vinay Kumar Yadav Link: https://lore.kernel.org/r/20201022190556.21308-1-vinay.yadav@chelsio.com Signed-off-by: Jakub Kicinski Signed-off-by: Greg Kroah-Hartman --- drivers/crypto/chelsio/chtls/chtls_io.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) --- a/drivers/crypto/chelsio/chtls/chtls_io.c +++ b/drivers/crypto/chelsio/chtls/chtls_io.c @@ -1549,6 +1549,7 @@ skip_copy: tp->urg_data = 0; if ((avail + offset) >= skb->len) { + struct sk_buff *next_skb; if (ULP_SKB_CB(skb)->flags & ULPCB_FLAG_TLS_HDR) { tp->copied_seq += skb->len; hws->rcvpld = skb->hdr_len; @@ -1558,8 +1559,10 @@ skip_copy: chtls_free_skb(sk, skb); buffers_freed++; hws->copied_seq = 0; - if (copied >= target && - !skb_peek(&sk->sk_receive_queue)) + next_skb = skb_peek(&sk->sk_receive_queue); + if (copied >= target && !next_skb) + break; + if (ULP_SKB_CB(next_skb)->flags & ULPCB_FLAG_TLS_HDR) break; } } while (len > 0);