From nobody Wed Dec 17 14:01:46 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 957B4C4167B for ; Sun, 26 Nov 2023 09:43:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229468AbjKZJhb (ORCPT ); Sun, 26 Nov 2023 04:37:31 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35122 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229437AbjKZJh3 (ORCPT ); Sun, 26 Nov 2023 04:37:29 -0500 Received: from mailgw.kylinos.cn (mailgw.kylinos.cn [124.126.103.232]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1C925FB for ; Sun, 26 Nov 2023 01:37:32 -0800 (PST) X-UUID: 3f9bbc6d8e9b48aba667ee1e0f313a0b-20231126 X-CID-O-RULE: Release_Ham X-CID-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.33,REQID:4e935d8f-4b1f-4b86-8762-f3fc8d4820c5,IP:15, URL:0,TC:0,Content:0,EDM:0,RT:0,SF:-15,FILE:0,BULK:0,RULE:Release_Ham,ACTI ON:release,TS:0 X-CID-INFO: VERSION:1.1.33,REQID:4e935d8f-4b1f-4b86-8762-f3fc8d4820c5,IP:15,UR L:0,TC:0,Content:0,EDM:0,RT:0,SF:-15,FILE:0,BULK:0,RULE:Release_Ham,ACTION :release,TS:0 X-CID-META: VersionHash:364b77b,CLOUDID:05c1f4fc-4a48-46e2-b946-12f04f20af8c,B ulkID:231126173724GJO4SPNI,BulkQuantity:0,Recheck:0,SF:66|38|24|17|19|44|1 02,TC:nil,Content:0,EDM:-3,IP:-2,URL:0,File:nil,Bulk:nil,QS:nil,BEC:nil,CO L: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: 3f9bbc6d8e9b48aba667ee1e0f313a0b-20231126 X-User: chentao@kylinos.cn Received: from vt.. [(116.128.244.169)] by mailgw (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 571591659; Sun, 26 Nov 2023 17:37:23 +0800 From: Kunwu Chan To: mpe@ellerman.id.au, npiggin@gmail.com, christophe.leroy@csgroup.eu, bgray@linux.ibm.com, maddy@linux.vnet.ibm.com, bigeasy@linutronix.de, hemant@linux.vnet.ibm.com, anju@linux.vnet.ibm.com, kjain@linux.ibm.com Cc: linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, kunwu.chan@hotmail.com, Kunwu Chan Subject: [PATCH] powerpc/imc-pmu: Fix null pointer dereference in update_events_in_group Date: Sun, 26 Nov 2023 17:37:19 +0800 Message-Id: <20231126093719.1440305-1-chentao@kylinos.cn> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" kasprintf() returns a pointer to dynamically allocated memory which can be NULL upon failure. Fixes: 885dcd709ba9 ("powerpc/perf: Add nest IMC PMU support") Signed-off-by: Kunwu Chan --- arch/powerpc/perf/imc-pmu.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/arch/powerpc/perf/imc-pmu.c b/arch/powerpc/perf/imc-pmu.c index 5d12ca386c1f..8664a7d297ad 100644 --- a/arch/powerpc/perf/imc-pmu.c +++ b/arch/powerpc/perf/imc-pmu.c @@ -299,6 +299,8 @@ static int update_events_in_group(struct device_node *n= ode, struct imc_pmu *pmu) attr_group->attrs =3D attrs; do { ev_val_str =3D kasprintf(GFP_KERNEL, "event=3D0x%x", pmu->events[i].valu= e); + if (!ev_val_str) + continue; dev_str =3D device_str_attr_create(pmu->events[i].name, ev_val_str); if (!dev_str) continue; @@ -306,6 +308,8 @@ static int update_events_in_group(struct device_node *n= ode, struct imc_pmu *pmu) attrs[j++] =3D dev_str; if (pmu->events[i].scale) { ev_scale_str =3D kasprintf(GFP_KERNEL, "%s.scale", pmu->events[i].name); + if (!ev_scale_str) + continue; dev_str =3D device_str_attr_create(ev_scale_str, pmu->events[i].scale); if (!dev_str) continue; @@ -315,6 +319,8 @@ static int update_events_in_group(struct device_node *n= ode, struct imc_pmu *pmu) =20 if (pmu->events[i].unit) { ev_unit_str =3D kasprintf(GFP_KERNEL, "%s.unit", pmu->events[i].name); + if (!ev_unit_str) + continue; dev_str =3D device_str_attr_create(ev_unit_str, pmu->events[i].unit); if (!dev_str) continue; --=20 2.34.1