Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp930759ybt; Wed, 17 Jun 2020 18:13:03 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzJG8m2yM5MQmcHzlM4EFFK9OIWkEmPtiyVgmYDCwUkMvQZGiifX8uBi+UMtpSekNvML4gw X-Received: by 2002:a17:906:5243:: with SMTP id y3mr1810379ejm.193.1592442783391; Wed, 17 Jun 2020 18:13:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592442783; cv=none; d=google.com; s=arc-20160816; b=vdvmUT/R6NQ0zQxSV67bNIICd2aU9mNNSneoB+1Tw2ARKeJUU9R9m8N7e+oRauAm3F IFKBOjr+2cPvx5/xTjge72yzKX3OAzodkzeNX6NDFyKWefECxKsh/BwUoSpnY8xvDltv TBKrMyYqqCpiuAdALthOwgm9RrHcB68+ArCPNBDb0lOGiVYmsjVelFQMuuZsN987CeRf SHiBX72dj4sfdUGiEW4yEKT4meE6bSk91mDkq8gRCcdbc5IrkoQwQk/oI8sGleqMnDhF 1g5ffhnmtAkhg5YuqtrX4qaz+ESJl//Ff8Y06uwoszMe00ZCXEfk1Wh0Ddw9wRMSusXp Ht9Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=xQIe7VdIuxDFOUVjywPZ1whvSGM3Z0F3zZzMdyw7ZOc=; b=v3xkOGNhuNKOwQIqhbhgJTS8bHaEA512zEu3cUwmWovo0xon7B3bry/PY6gqT0Ssc0 O7K7YQ7ekS4VBLla8arYnuyJSg0Kvs3zeGDwoB2Nm/8Fo1iT1OzBTRotrxi0N5kLEux6 lRx+RLgJOVbl8+aWVzUhx16NVya7MWdAvJPfxiFZul/DyAWzfCtgxJMpDcYFsFOY4jBw g9ZoV0deYJQMpOP1pjlQEg0V6wCoT1ozqFVrM7IZUGeqR/Vmb0TtkgEM+97dHwooo5/X +BCeyreTyjdkJO+0KYSKRegRRtcOSHvHYowQqp7xXu19R+BzaPfEoEhpRxW49//NBSQR mv+g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=gmiAm8sE; 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 r21si857659ejx.647.2020.06.17.18.12.41; Wed, 17 Jun 2020 18:13:03 -0700 (PDT) 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=gmiAm8sE; 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 S1728425AbgFRBKM (ORCPT + 99 others); Wed, 17 Jun 2020 21:10:12 -0400 Received: from mail.kernel.org ([198.145.29.99]:37002 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728385AbgFRBKF (ORCPT ); Wed, 17 Jun 2020 21:10:05 -0400 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id D718E21D7B; Thu, 18 Jun 2020 01:10:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1592442605; bh=BGdvKK5DrbYBFeR4C8aGl3gQsYyEsDpaxKr1dkc8478=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gmiAm8sEQw9CzzdNSxIKtk1WXyp3TJProqX1txhxhLyy74xJFLlJ2iMgOluSH3WG9 d4Ok5VC2xZgG4Hfg+0RJKIpFYRZ3GSipsHcR9HKfmRDBg1sE83VrJYlNFMzmQ0XM5v 3eG4LUMz4NDH7IeOwLLyZvIKfyy+UngUgtL7Ov/I= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Tero Kristo , Herbert Xu , Sasha Levin , linux-crypto@vger.kernel.org Subject: [PATCH AUTOSEL 5.7 091/388] crypto: omap-sham - huge buffer access fixes Date: Wed, 17 Jun 2020 21:03:08 -0400 Message-Id: <20200618010805.600873-91-sashal@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200618010805.600873-1-sashal@kernel.org> References: <20200618010805.600873-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Tero Kristo [ Upstream commit 6395166d7a19019d5e9574eb9ecdaf0028abb887 ] The ctx internal buffer can only hold buflen amount of data, don't try to copy over more than that. Also, initialize the context sg pointer if we only have data in the context internal buffer, this can happen when closing a hash with certain data amounts. Signed-off-by: Tero Kristo Signed-off-by: Herbert Xu Signed-off-by: Sasha Levin --- drivers/crypto/omap-sham.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/crypto/omap-sham.c b/drivers/crypto/omap-sham.c index e4072cd38585..0cbf9c932a0f 100644 --- a/drivers/crypto/omap-sham.c +++ b/drivers/crypto/omap-sham.c @@ -751,8 +751,15 @@ static int omap_sham_align_sgs(struct scatterlist *sg, int offset = rctx->offset; int bufcnt = rctx->bufcnt; - if (!sg || !sg->length || !nbytes) + if (!sg || !sg->length || !nbytes) { + if (bufcnt) { + sg_init_table(rctx->sgl, 1); + sg_set_buf(rctx->sgl, rctx->dd->xmit_buf, bufcnt); + rctx->sg = rctx->sgl; + } + return 0; + } new_len = nbytes; @@ -896,7 +903,7 @@ static int omap_sham_prepare_request(struct ahash_request *req, bool update) if (hash_later < 0) hash_later = 0; - if (hash_later) { + if (hash_later && hash_later <= rctx->buflen) { scatterwalk_map_and_copy(rctx->buffer, req->src, req->nbytes - hash_later, -- 2.25.1