From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id EE388C433DF for ; Mon, 15 Jun 2020 01:01:34 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 7432820714 for ; Mon, 15 Jun 2020 01:01:34 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7432820714 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=rock-chips.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id A2EFC6B0002; Sun, 14 Jun 2020 21:01:33 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9DF7D6B0003; Sun, 14 Jun 2020 21:01:33 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8F5726B0005; Sun, 14 Jun 2020 21:01:33 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0033.hostedemail.com [216.40.44.33]) by kanga.kvack.org (Postfix) with ESMTP id 742BB6B0002 for ; Sun, 14 Jun 2020 21:01:33 -0400 (EDT) Received: from smtpin13.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id DBC7D180AD807 for ; Mon, 15 Jun 2020 01:01:32 +0000 (UTC) X-FDA: 76929643224.13.balls02_2014d3226df2 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin13.hostedemail.com (Postfix) with ESMTP id A3AB218140B67 for ; Mon, 15 Jun 2020 01:01:32 +0000 (UTC) X-HE-Tag: balls02_2014d3226df2 X-Filterd-Recvd-Size: 2069 Received: from lucky1.263xmail.com (lucky1.263xmail.com [211.157.147.133]) by imf21.hostedemail.com (Postfix) with ESMTP for ; Mon, 15 Jun 2020 01:01:31 +0000 (UTC) Received: from localhost (unknown [192.168.167.70]) by lucky1.263xmail.com (Postfix) with ESMTP id AFC8AC4066; Mon, 15 Jun 2020 09:01:26 +0800 (CST) X-MAIL-GRAY:0 X-MAIL-DELIVERY:1 X-ADDR-CHECKED4:1 X-ANTISPAM-LEVEL:2 X-ABS-CHECKED:0 Received: from localhost.localdomain (unknown [58.22.7.114]) by smtp.263.net (postfix) whith ESMTP id P7894T140607611721472S1592182885179202_; Mon, 15 Jun 2020 09:01:26 +0800 (CST) X-IP-DOMAINF:1 X-UNIQUE-TAG:<6e5d4ca0e9834636d81f3592b3db92c0> X-RL-SENDER:jay.xu@rock-chips.com X-SENDER:xjq@rock-chips.com X-LOGIN-NAME:jay.xu@rock-chips.com X-FST-TO:akpm@linux-foundation.org X-SENDER-IP:58.22.7.114 X-ATTACHMENT-NUM:0 X-DNS-TYPE:0 X-System-Flag:0 From: Jianqun Xu To: akpm@linux-foundation.org Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Jianqun Xu Subject: [PATCH] mm/cma: fix NULL pointer dereference when cma could not be activated Date: Mon, 15 Jun 2020 09:01:23 +0800 Message-Id: <20200615010123.15596-1-jay.xu@rock-chips.com> X-Mailer: git-send-email 2.17.1 X-Rspamd-Queue-Id: A3AB218140B67 X-Spamd-Result: default: False [0.00 / 100.00] X-Rspamd-Server: rspam05 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: In some case the cma area could not be activated, but the cma_alloc be used under this case, then the kernel will crash caused by NULL pointer dereference. Add bitmap valid check in cma_alloc to avoid this issue. Signed-off-by: Jianqun Xu --- mm/cma.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/cma.c b/mm/cma.c index 0463ad2ce06b..488496fa2972 100644 --- a/mm/cma.c +++ b/mm/cma.c @@ -425,7 +425,7 @@ struct page *cma_alloc(struct cma *cma, size_t count, unsigned int align, struct page *page = NULL; int ret = -ENOMEM; - if (!cma || !cma->count) + if (!cma || !cma->count || !cma->bitmap) return NULL; pr_debug("%s(cma %p, count %zu, align %d)\n", __func__, (void *)cma, -- 2.17.1