Received: by 2002:a05:7412:b10a:b0:f3:1519:9f41 with SMTP id az10csp2455479rdb; Sun, 3 Dec 2023 18:33:27 -0800 (PST) X-Google-Smtp-Source: AGHT+IEBJxAJgLGaEseqjUxSu1eMSTF0JiPGY0U2U16BM7hxy7Pa1Uv7Rx+JOdGWZ/f/55yFSQ8K X-Received: by 2002:a05:6a20:394b:b0:18c:3ec:5ad5 with SMTP id r11-20020a056a20394b00b0018c03ec5ad5mr4795200pzg.57.1701657206771; Sun, 03 Dec 2023 18:33:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701657206; cv=none; d=google.com; s=arc-20160816; b=S6mvjB5E01MerSehKWhzexoxuQhmB9DpHbIax+I0BdV5Pe4JglFkGJH0+ulZ/bLEOG Y36LCfFAAwlXDppldRFCvuLEWBPOdRofuVTr8J8OWfQSTb4u1aP4I871i3T4mkAx2keW u56FraSS9zrPAkQK3pbUdz9/rk5lkHBXxZ2XE8entASKnZc4B3m3QAxTzuAcUnVu9jB4 EjY1gS1mY74ByNVmFEGAkrQ1BD31QecoaCYpexNMqwGIyz7kO5PRPkdVp3V88A6879tv ciTce9XAsR6yogfTC/5tXoZU0i8erGvNQaaLBXL51GuBhkrQi7ym+IRPbkXJPyXzw0NI 1DNw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=M0CCMXLD2T1iViuUOTmWWTW5Q0VqV2nejI5GyBr4IE4=; fh=sHo8oDwe+4NHLXehdlywLkCgMxpHE/R8p1xH1E6GvBc=; b=HQ+g2XxrZV2yT/rkpu2KFc49DLftKFsaR1D/s5CCTUZd7YazzMLp3Hdm+ZaCIXJ521 9yAlNWGYBOdCbCNlMcjQM+OJBorbIeEcPLict3+FQzlkWzIeAnAgDbrxPmiptnX2QwA2 xouLcKyGro1gmMSImpcR1HThnERJBL5k4cuEdTglbIQLjxCSZOYsgBvD38vkPD7NOGZu wZSDGLlcEiRH8FSUyTZzSXNaSrPfyWqG0fP6DJrMs33mygvaB5Zyt9Em41om4ttXkxVN L+t2qIjfIbXcXAXQ/k8r9Ai6P1UIkbzaZhbpwDeNyg6V6QdoKmmCtwzNM7xUAMJQ0t1b dcLg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from groat.vger.email (groat.vger.email. [2620:137:e000::3:5]) by mx.google.com with ESMTPS id u23-20020a056a00099700b006cdd83f45c0si7061419pfg.229.2023.12.03.18.33.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 Dec 2023 18:33:26 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) client-ip=2620:137:e000::3:5; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by groat.vger.email (Postfix) with ESMTP id 60B21807F679; Sun, 3 Dec 2023 18:33:24 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at groat.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230288AbjLDCdI (ORCPT + 99 others); Sun, 3 Dec 2023 21:33:08 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57838 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229839AbjLDCdH (ORCPT ); Sun, 3 Dec 2023 21:33:07 -0500 Received: from mailgw.kylinos.cn (mailgw.kylinos.cn [124.126.103.232]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CC846C3 for ; Sun, 3 Dec 2023 18:33:12 -0800 (PST) X-UUID: 2af262f16133434982fc8da7adb9ef8f-20231204 X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.33,REQID:eaf8b5b5-86e4-4b89-b817-00e66ec4c14a,IP:20, URL:0,TC:0,Content:-25,EDM:-30,RT:0,SF:-15,FILE:0,BULK:0,RULE:Release_Ham, ACTION:release,TS:-50 X-CID-INFO: VERSION:1.1.33,REQID:eaf8b5b5-86e4-4b89-b817-00e66ec4c14a,IP:20,UR L:0,TC:0,Content:-25,EDM:-30,RT:0,SF:-15,FILE:0,BULK:0,RULE:Release_Ham,AC TION:release,TS:-50 X-CID-META: VersionHash:364b77b,CLOUDID:44c6c560-c89d-4129-91cb-8ebfae4653fc,B ulkID:2312041033080IJWGV87,BulkQuantity:0,Recheck:0,SF:17|19|44|66|38|24|1 02,TC:nil,Content:0,EDM:2,IP:-2,URL:0,File:nil,Bulk:nil,QS:nil,BEC:nil,COL :0,OSI:0,OSA:0,AV:0,LES:1,SPR:NO,DKR:0,DKP:0,BRR:0,BRE:0 X-CID-BVR: 0 X-CID-BAS: 0,_,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR,TF_CID_SPAM_FAS,TF_CID_SPAM_FSD,TF_CID_SPAM_FSI X-UUID: 2af262f16133434982fc8da7adb9ef8f-20231204 X-User: chentao@kylinos.cn Received: from vt.. [(116.128.244.171)] by mailgw (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 118140681; Mon, 04 Dec 2023 10:33:04 +0800 From: Kunwu Chan To: mpe@ellerman.id.au, npiggin@gmail.com, christophe.leroy@csgroup.eu Cc: kunwu.chan@hotmail.com, linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, Kunwu Chan Subject: [PATCH v3] powerpc/mm: Fix null-pointer dereference in pgtable_cache_add Date: Mon, 4 Dec 2023 10:32:23 +0800 Message-Id: <20231204023223.2447523-1-chentao@kylinos.cn> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-0.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE, UNPARSEABLE_RELAY autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on groat.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (groat.vger.email [0.0.0.0]); Sun, 03 Dec 2023 18:33:24 -0800 (PST) kasprintf() returns a pointer to dynamically allocated memory which can be NULL upon failure. Ensure the allocation was successful by checking the pointer validity. Suggested-by: Christophe Leroy Suggested-by: Michael Ellerman Signed-off-by: Kunwu Chan --- v2: Use "panic" instead of "return" v3: Merge two "panic" to one --- arch/powerpc/mm/init-common.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/arch/powerpc/mm/init-common.c b/arch/powerpc/mm/init-common.c index 119ef491f797..d3a7726ecf51 100644 --- a/arch/powerpc/mm/init-common.c +++ b/arch/powerpc/mm/init-common.c @@ -126,7 +126,7 @@ void pgtable_cache_add(unsigned int shift) * as to leave enough 0 bits in the address to contain it. */ unsigned long minalign = max(MAX_PGTABLE_INDEX_SIZE + 1, HUGEPD_SHIFT_MASK + 1); - struct kmem_cache *new; + struct kmem_cache *new = NULL; /* It would be nice if this was a BUILD_BUG_ON(), but at the * moment, gcc doesn't seem to recognize is_power_of_2 as a @@ -139,7 +139,8 @@ void pgtable_cache_add(unsigned int shift) align = max_t(unsigned long, align, minalign); name = kasprintf(GFP_KERNEL, "pgtable-2^%d", shift); - new = kmem_cache_create(name, table_size, align, 0, ctor(shift)); + if (name) + new = kmem_cache_create(name, table_size, align, 0, ctor(shift)); if (!new) panic("Could not allocate pgtable cache for order %d", shift); -- 2.34.1