Received: by 10.213.65.68 with SMTP id h4csp453195imn; Tue, 20 Mar 2018 07:16:26 -0700 (PDT) X-Google-Smtp-Source: AG47ELuRLUriDbJEcGefchxlYFzk4L/HdMqG9HK2/hvY0F45BhCxxRettCZ+gQNreH2g3eTXF8a8 X-Received: by 10.101.77.198 with SMTP id q6mr6125739pgt.61.1521555386531; Tue, 20 Mar 2018 07:16:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521555386; cv=none; d=google.com; s=arc-20160816; b=pExpVlyz1ldfFTinREOWVUCszY205phMnbvneBTo32625IaylDzMNerCbwN2BNTORT Ql6tsgAVxAJkqDK5omeuTaeDy6EwzkZ6E50FvbHjLCigc934VF+5FViZDZnWMymBFp0c S2qRoGoYqwa4PnayfgAZ8nbEG3UnD7ezx95bnwid/oeCc0CWXTmtYJKtcpgXCBo2MMv2 amblL/sAwPIdPqvJP9pG9Vmb9qrMEXb3kN3DnEfJULCPnth3BI8l9y7edgiPtQCj/N7W ePM11q9tCAIYoRH+rLP10QXtU1r3kxZeZqPSVyeb2uT3sMfruMfaLM/mBb02eq/WRBJG cz2w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :message-id:date:subject:cc:to:from:arc-authentication-results; bh=e/gOyrFg4Y6RjvBXn14PoJ2ePvKEKaFvHogkv5Yri10=; b=bR+2sMfuMoT6X1v9L3ba96Pi5KNXpp3FSdQuRRm7NAOTtcoirtolAIQE2vgi/erfel 6AhHlq+5qFoxKSd96xPDNcaTjt34+K6ZeriCZ1ni0DMoIeznAAv7oI/bXaOuheZACGRU 1iI4WOWZUEeSaCGor+hFcFOrIIV/rjJvmd4VzRi2QUjqh8izCaeYjsrEsKhBg7Al42DS SRbfkhvUNfRlyWn8rq46PFNSnkjMKX7j4LzDQyliSmDKWgGVkkfgaduCV547GIJOnqyz h1qUu4IpI6x10DgNUpZiKCNn/3SXYB101ASxTwe14PliHZvqYgHXroNi2NxV0X9VtAml /Xgg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g10si1221992pgp.215.2018.03.20.07.16.11; Tue, 20 Mar 2018 07:16:26 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751405AbeCTOPO (ORCPT + 99 others); Tue, 20 Mar 2018 10:15:14 -0400 Received: from szxga05-in.huawei.com ([45.249.212.191]:6253 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750888AbeCTOPM (ORCPT ); Tue, 20 Mar 2018 10:15:12 -0400 Received: from DGGEMS414-HUB.china.huawei.com (unknown [172.30.72.60]) by Forcepoint Email with ESMTP id 05BA6584275B8; Tue, 20 Mar 2018 22:14:56 +0800 (CST) Received: from localhost.localdomain.localdomain (10.175.113.25) by DGGEMS414-HUB.china.huawei.com (10.3.19.214) with Microsoft SMTP Server id 14.3.361.1; Tue, 20 Mar 2018 22:14:29 +0800 From: Wei Yongjun To: Neil Armstrong , David Airlie , Carlo Caione , Kevin Hilman CC: Wei Yongjun , , , , , Subject: [PATCH -next] drm/meson: Fix potential NULL dereference in meson_drv_bind_master() Date: Tue, 20 Mar 2018 14:20:30 +0000 Message-ID: <1521555630-29284-1-git-send-email-weiyongjun1@huawei.com> X-Mailer: git-send-email 1.8.3.1 Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 7bit MIME-Version: 1.0 X-Originating-IP: [10.175.113.25] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org platform_get_resource_byname() may fail and return NULL, so we should better check it's return value to avoid a NULL pointer dereference a bit later in the code. This is detected by Coccinelle semantic patch. @@ expression pdev, res, n, t, e, e1, e2; @@ res = platform_get_resource_byname(pdev, t, n); + if (!res) + return -EINVAL; ... when != res == NULL e = devm_ioremap(e1, res->start, e2); Signed-off-by: Wei Yongjun --- drivers/gpu/drm/meson/meson_drv.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/gpu/drm/meson/meson_drv.c b/drivers/gpu/drm/meson/meson_drv.c index 3baceb7..32b1a6c 100644 --- a/drivers/gpu/drm/meson/meson_drv.c +++ b/drivers/gpu/drm/meson/meson_drv.c @@ -197,6 +197,8 @@ static int meson_drv_bind_master(struct device *dev, bool has_components) priv->io_base = regs; res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "hhi"); + if (!res) + return -EINVAL; /* Simply ioremap since it may be a shared register zone */ regs = devm_ioremap(dev, res->start, resource_size(res)); if (!regs) { @@ -213,6 +215,8 @@ static int meson_drv_bind_master(struct device *dev, bool has_components) } res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "dmc"); + if (!res) + return -EINVAL; /* Simply ioremap since it may be a shared register zone */ regs = devm_ioremap(dev, res->start, resource_size(res)); if (!regs) {