Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp5466970pxu; Tue, 22 Dec 2020 19:01:42 -0800 (PST) X-Google-Smtp-Source: ABdhPJztv5glY3mEBmDknNbDHJkV9q+qoeXiRsZ+d7ECzoWzMbaljTPME7o0HIvbELVEJN4RlssY X-Received: by 2002:a17:906:ceca:: with SMTP id si10mr22095924ejb.547.1608692502536; Tue, 22 Dec 2020 19:01:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1608692502; cv=none; d=google.com; s=arc-20160816; b=Stf9NFj1kyA5tDNJJDBGJI0ibi85DdFPvG2fTkccu/bAUiidb/fVKAzAAqv1BcyuQ5 jnCSAN3OZF1sXvwClWvf4DhL/4bvNnoR/ORX9gpar4ZluML9JpYKum1Iy0SSwO0VspGI DnnnZKaTa/hpK/z9UVLeau8BZVIIk+VevaXWg5HYrNzjpHHt4U1kadn570Qzmq/kF5ME 4w8bPrzb2iZ6KbIrni4nVuzphVoz4etbyJmuAepXowBNVC0dOgA16xbtVl70MGg/e/rU dfB68ZESGIbv2rHWnuU9R3Ohk1Vkj/1HHZlV5sAhkcnelY2ZThmRPjO6w87wnPzfvoj8 CN6g== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=8kTnur5N5uNHLXSG/0BI0RtfaWGJx+OFMQz6BZdAIx4=; b=LLT1DRQCrGQ06Ng0Hk3oJkXu1+eBUkSzCpOf4LxRQrhS+OoRtUa1ngUq/rVUC3d3zk Kw1GagZJ838lHMhDQ1K4nrC3OO2dxMUmyG3DMgnNJo+H3fM2D/dzgdLM7Eq2Z0wwJy6p YNytkLsQE8j9kT95YbuKgQM3BnzoZSaLCIDt/CGUE8dP4YhUhbXHixSi6yRgTlg7L01E 99JzEsv1mePjIyJrIlLd0RqmB18kehqCnwHA2fwYe9YeoNWTzeagynZFcDJML5auP1Xb 3AYlq4A5wW2VGArWIodlFCnhDJdp+H8J2GPk7oGiGi75QhGPPFZ1tdf6yEYbFdZMl6uI L5Rw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=tyxqFqur; 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=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id co17si13143794edb.518.2020.12.22.19.01.20; Tue, 22 Dec 2020 19:01:42 -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=k20201202 header.b=tyxqFqur; 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=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731424AbgLWC7v (ORCPT + 99 others); Tue, 22 Dec 2020 21:59:51 -0500 Received: from mail.kernel.org ([198.145.29.99]:45490 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728855AbgLWCUE (ORCPT ); Tue, 22 Dec 2020 21:20:04 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id 1AE3A22248; Wed, 23 Dec 2020 02:19:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1608689987; bh=iZ9EnPp4I+VsiV/fkq4x3HqWHGBcJbtlzoXdQQkJY/o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tyxqFqurXB1hMqxcqg7JUDnyhCzndFmeOBfRaO4dBR5NQ0+qYvHGNEDwK+qqErCiO IDSfy4nPfgn9fJarMWKZJCIpHTwwIdGAC5aCU6BkmT3OrCuDXj/AOxuK4E+BYu9V1Q 5q3FVtiXvdmHLMBd7PWg9PgD0d7YzxVZJyCuMmCGVcDJHXc6jiWW6bh1extupU2nlP UQ/gbY84m+ndWHWEMhCyWwGwGSgxRYqEWP3/E+XxSNlWp0GoZKiKgA1J//JZSpV+bf hb6VPu1pV0U8PxunbLpXjcRbfzl7ob3XLd+cyQDfqIgQFmuZlAQwWbHyS2hNL2hWTM NVVnPYCBkdveg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Thara Gopinath , Bjorn Andersson , Herbert Xu , Sasha Levin , linux-crypto@vger.kernel.org Subject: [PATCH AUTOSEL 5.4 073/130] crypto: qce - Fix SHA result buffer corruption issues Date: Tue, 22 Dec 2020 21:17:16 -0500 Message-Id: <20201223021813.2791612-73-sashal@kernel.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20201223021813.2791612-1-sashal@kernel.org> References: <20201223021813.2791612-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Thara Gopinath [ Upstream commit 1148a9654b5a69611d33e14719251c6ec20f5f2c ] Partial hash was being copied into the final result buffer without the entire message block processed. Depending on how the end user processes this result buffer, errors vary from result buffer corruption to result buffer poisoing. Fix this issue by ensuring that only the final hash value is copied into the result buffer. Reviewed-by: Bjorn Andersson Signed-off-by: Thara Gopinath Signed-off-by: Herbert Xu Signed-off-by: Sasha Levin --- drivers/crypto/qce/sha.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/crypto/qce/sha.c b/drivers/crypto/qce/sha.c index 0853e74583ade..981957e9db592 100644 --- a/drivers/crypto/qce/sha.c +++ b/drivers/crypto/qce/sha.c @@ -47,7 +47,7 @@ static void qce_ahash_done(void *data) dma_unmap_sg(qce->dev, &rctx->result_sg, 1, DMA_FROM_DEVICE); memcpy(rctx->digest, result->auth_iv, digestsize); - if (req->result) + if (req->result && rctx->last_blk) memcpy(req->result, result->auth_iv, digestsize); rctx->byte_count[0] = cpu_to_be32(result->auth_byte_count[0]); -- 2.27.0