Received: by 2002:a25:2c96:0:0:0:0:0 with SMTP id s144csp208774ybs; Tue, 26 May 2020 07:21:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzFr+7cgdtCRgGd5co8PO+symRtd51ORiEObpL/9hZ47F/BInc+ZJ0yojUtba/2CQj2HpPU X-Received: by 2002:a17:906:b5c1:: with SMTP id ep1mr1270648ejb.528.1590502903655; Tue, 26 May 2020 07:21:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1590502903; cv=none; d=google.com; s=arc-20160816; b=qhPM7SsrvbFaDSYmDFWv5WpUiBwJWdixM/uFoi5vsAvADgikXUJObr1kSK/TaQAxug iJY3vMMCJ1J9aMnUXL+EOMXr2/ojDXEGNZHsD1kicCvIJOgeLZJDxTwMIxF9HZAybKmY ckBi3l2A3dOTbqTPbpvdkA8e87nk8GJl9bNJ7XSjE0aZ76peDg0T+LtRzRYk/8bJYCsS 5T6coMbWxgtjjVtUlxsWypBDtaV8kQChWcPGL4ccNo8zWX+esRg3LAPP8bpkPWwgXj6c TMKtU1Rp3gi0Z9nnVg/YEipVeNzfOuqNpnXSN52ur/xW0DdBq5qV8Izkn/6upAPocrBj EuOQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=os45j/rYJrQJWrLHX/zyT3cvsjFLUypv+9XW8LkowNw=; b=R/DgVMeNoCtxrrskbyIudQK0LuBXT6PJ+sGvp3sf2WoUzsSyS3IdDUQgDs4NENpo4B jw+r6Zh78SAuUd8xkSN3lnGXPYBuWeO1ghl3C7MS7gEO1cqsqX2r/BcBegmArvYBo3Uv NpJbTqR3aGTgmItRrOrYTOAO7umuFtMPvHEPzb1PLdniCZ/oL6iDUx0TV5bRKuiHJ9+N VX7SwQz+TYzw841gOibg6S27gSNTLcRED8W4AanOKkXXuoj/8oHEYt2D/iMir6HtlDNR NCCTBSkzqzk4A6zXo6njic5boRTQVmelfDiOSGzGILkH0ziDYS0M4x7q4CUJsogVgNtd osFA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=upAv+60s; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id ce7si12184877edb.483.2020.05.26.07.21.19; Tue, 26 May 2020 07:21:43 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-crypto-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=@ti.com header.s=ti-com-17Q1 header.b=upAv+60s; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726962AbgEZOVN (ORCPT + 99 others); Tue, 26 May 2020 10:21:13 -0400 Received: from fllv0016.ext.ti.com ([198.47.19.142]:56112 "EHLO fllv0016.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726811AbgEZOVN (ORCPT ); Tue, 26 May 2020 10:21:13 -0400 Received: from fllv0035.itg.ti.com ([10.64.41.0]) by fllv0016.ext.ti.com (8.15.2/8.15.2) with ESMTP id 04QEL6wc042024; Tue, 26 May 2020 09:21:06 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1590502866; bh=os45j/rYJrQJWrLHX/zyT3cvsjFLUypv+9XW8LkowNw=; h=From:To:CC:Subject:Date:In-Reply-To:References; b=upAv+60s82w7RwKv/t5j6FHEIw9NLahjjFiKZ+IKxH0DVeOhPjvpP4wUVBIYgdANK 7khZmrxI22CnskLdHOqNTZhT4bWW2apCCnRhjxaJdCjkRW7UxziQVtKWgq84pbOBsz g8J0nwQgaykfKGkz6yCNwoZcSNXMWoZ2lDMg5u7U= Received: from DFLE103.ent.ti.com (dfle103.ent.ti.com [10.64.6.24]) by fllv0035.itg.ti.com (8.15.2/8.15.2) with ESMTP id 04QEL6A9050220; Tue, 26 May 2020 09:21:06 -0500 Received: from DFLE105.ent.ti.com (10.64.6.26) by DFLE103.ent.ti.com (10.64.6.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1979.3; Tue, 26 May 2020 09:21:06 -0500 Received: from fllv0039.itg.ti.com (10.64.41.19) by DFLE105.ent.ti.com (10.64.6.26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1979.3 via Frontend Transport; Tue, 26 May 2020 09:21:06 -0500 Received: from sokoban.ti.com (ileax41-snat.itg.ti.com [10.172.224.153]) by fllv0039.itg.ti.com (8.15.2/8.15.2) with ESMTP id 04QEL4TV121018; Tue, 26 May 2020 09:21:05 -0500 From: Tero Kristo To: , , CC: Subject: [PATCHv3 3/7] crypto: omap-crypto: fix userspace copied buffer access Date: Tue, 26 May 2020 17:21:04 +0300 Message-ID: <20200526142104.7362-1-t-kristo@ti.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200522131247.GA27255@gondor.apana.org.au> References: <20200522131247.GA27255@gondor.apana.org.au> MIME-Version: 1.0 Content-Type: text/plain X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org In case buffers are copied from userspace, directly accessing the page will most likely fail because it hasn't been mapped into the kernel memory space. Fix the issue by forcing a kmap / kunmap within the cleanup functionality. Signed-off-by: Tero Kristo --- v3: - Added PageSlab() check to the cache flushing portion, and changed the used flush API to be flush_kernel_dcache_page() drivers/crypto/omap-crypto.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/crypto/omap-crypto.c b/drivers/crypto/omap-crypto.c index cc88b7362bc2..94b2dba90f0d 100644 --- a/drivers/crypto/omap-crypto.c +++ b/drivers/crypto/omap-crypto.c @@ -178,11 +178,17 @@ static void omap_crypto_copy_data(struct scatterlist *src, amt = min(src->length - srco, dst->length - dsto); amt = min(len, amt); - srcb = sg_virt(src) + srco; - dstb = sg_virt(dst) + dsto; + srcb = kmap_atomic(sg_page(src)) + srco + src->offset; + dstb = kmap_atomic(sg_page(dst)) + dsto + dst->offset; memcpy(dstb, srcb, amt); + if (!PageSlab(sg_page(dst))) + flush_kernel_dcache_page(sg_page(dst)); + + kunmap_atomic(srcb); + kunmap_atomic(dstb); + srco += amt; dsto += amt; len -= amt; -- 2.17.1 -- Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki