Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp386826pxb; Wed, 24 Feb 2021 05:05:22 -0800 (PST) X-Google-Smtp-Source: ABdhPJwdiQDraebtrG1VfnuAH0N0PdIxX2Bf9FoTRl8josBw22Poh12h8SNImfE8oB6KjdKYhs8s X-Received: by 2002:a17:906:5fc8:: with SMTP id k8mr13447760ejv.104.1614171922127; Wed, 24 Feb 2021 05:05:22 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1614171922; cv=none; d=google.com; s=arc-20160816; b=0dydSBFXg3+8ms8yzrE0dnzrrJvJSK5mRAI4tW4ocWeefXhAi/SzpfZ5/p6F3/y94x ZUjUbaNes+aqCMZn+BHTRfPTZmBwZV7kZxCYtkvc/qCc3+dch9+HSCTRg+3Ih1ybXtnG SloAnHhD7EjVv6awx5/c+C4x1Vd7lEC+M6eekUlgHDApOtzsq8cSVmUB0wwqd6wR8hzC DUjS6QWONb4QO4/ynfZeR9wmPjirAv/t4t3DBFls4Muh1yrAbsXPBwYBM9WNx6M0FmCB Tlr84JowycrSoptA3C4+Eg1AJPbivz22U5pdO4ggEjoJwsZ6+uLvytrgKpkZvDzJMgqP cbgw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:from:references :cc:to:subject; bh=/TiJcn02+bUwVbeAT6+1OjGq9dy2DsO2IDlzj9YjhKo=; b=Ded5Dg7Mr43psJCtROghW3LrhnkunHp/eYnMneq5oho6v/wHskloDLzH/6iDVb783n G1adpArnBYZ/Jc6NAgEAbX8s/95ZeHVTi3syJnpAJU2FziwsWZp2ta7v5lN9FYlZCtjN ljXc1gMSVT40t5lA4l95XVtL0eUxvYZUkgiAHhBf71tAh5DTtJA3lI7aL6wRl/0e8ecr Kiv9tkQqpFi/Q/qPc0000fuYjqq36rA/GfroQzAT3s8BfknkQgs6BIyJwDPKv8HJ9YVr FY5jY+tN51dWKBVN1jB5azmf7wMHnHLgGF/sElZW7gQoykTCkMnWfDQAC9ZbfCWSuAsz k3hQ== ARC-Authentication-Results: i=1; mx.google.com; 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=canonical.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id h26si1288016ejk.153.2021.02.24.05.04.55; Wed, 24 Feb 2021 05:05:22 -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; 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=canonical.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232847AbhBXIsS (ORCPT + 99 others); Wed, 24 Feb 2021 03:48:18 -0500 Received: from youngberry.canonical.com ([91.189.89.112]:45495 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234039AbhBXIrW (ORCPT ); Wed, 24 Feb 2021 03:47:22 -0500 Received: from cpc154979-craw9-2-0-cust193.16-3.cable.virginm.net ([80.193.200.194] helo=[192.168.0.210]) by youngberry.canonical.com with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1lEpoa-0002NZ-1G; Wed, 24 Feb 2021 08:46:36 +0000 Subject: Re: [PATCH] memory: gpmc: fix out of bounds read and dereference on gpmc_cs[] To: Dan Carpenter Cc: Roger Quadros , Tony Lindgren , Krzysztof Kozlowski , linux-omap@vger.kernel.org, kernel-janitors@vger.kernel.org, linux-kernel@vger.kernel.org References: <20210223193821.17232-1-colin.king@canonical.com> <20210224075552.GS2087@kadam> From: Colin Ian King Message-ID: Date: Wed, 24 Feb 2021 08:46:35 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.0 MIME-Version: 1.0 In-Reply-To: <20210224075552.GS2087@kadam> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 24/02/2021 07:55, Dan Carpenter wrote: > On Tue, Feb 23, 2021 at 07:38:21PM +0000, Colin King wrote: >> From: Colin Ian King >> >> Currently the array gpmc_cs is indexed by cs before it cs is range checked >> and the pointer read from this out-of-index read is dereferenced. Fix this >> by performing the range check on cs before the read and the following >> pointer dereference. >> >> Addresses-Coverity: ("Negative array index read") >> Fixes: 186401937927 ("memory: gpmc: Move omap gpmc code to live under drivers") >> Signed-off-by: Colin Ian King >> --- >> drivers/memory/omap-gpmc.c | 7 +++++-- >> 1 file changed, 5 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/memory/omap-gpmc.c b/drivers/memory/omap-gpmc.c >> index cfa730cfd145..f80c2ea39ca4 100644 >> --- a/drivers/memory/omap-gpmc.c >> +++ b/drivers/memory/omap-gpmc.c >> @@ -1009,8 +1009,8 @@ EXPORT_SYMBOL(gpmc_cs_request); >> >> void gpmc_cs_free(int cs) >> { >> - struct gpmc_cs_data *gpmc = &gpmc_cs[cs]; >> - struct resource *res = &gpmc->mem; > > There is no actual dereferencing going on here, it just taking the > addresses. But the patch is also harmless and improves readability. Plus compilers are getting smarter with static analysis so some day in the future they will warn about this. > > regards, > dan carpenter >