Message ID | 20231211062649.247148-1-chentao@kylinos.cn |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:bcd1:0:b0:403:3b70:6f57 with SMTP id r17csp6861842vqy; Sun, 10 Dec 2023 22:27:53 -0800 (PST) X-Google-Smtp-Source: AGHT+IHwObXgIJ0lmFgRE0R27tvuEAK18ur/wFJPfPPvHACzlFlDa/DmcTNWLJc0m2k0wqfSXvaX X-Received: by 2002:a05:6830:1b73:b0:6d9:dfa5:1c84 with SMTP id d19-20020a0568301b7300b006d9dfa51c84mr4788922ote.25.1702276072761; Sun, 10 Dec 2023 22:27:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1702276072; cv=none; d=google.com; s=arc-20160816; b=O+1kO9Zgj/VX+T85hxEQhkOrM70AWm/LyUytOaubyoDuRs98RY1UAPmWGKG3Ptw1y7 /fDPbqcx7wyLMXrsPm3m9J3VFtPzxoXPZPHK8gMbTd8zGg6/1ljMrQPPZr6h5IHWKRC/ DJM3dlN9G+Tza1G0S659ZOkmBHtp3An1l4XJ1gZ8lRCn7NirqH4st2tgbN0DN7H2fAnc fOnh9VK1iGG2GWKNXKUD3zL5yveaX+DqEwRVNRTKihaKF+maEdM+vY0JC5pHtoGQZZKS 2y/F3niwpESVaB4EIW9kriVaW/L1sR+S2S0VmTpLkwxttzrFpPcoJwjmhm/FSV4cqoJM qgVQ== 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=0NVcFJS9vdmo+gDyIr+smdHE7StQG127D9NG453iskI=; fh=Lcp1c6UDLFvRB+wlZRry4uMMiCXWsrSurFEi26xOqls=; b=xivDKYq14udN1zshkxLkBmMUIAaCqia/i2f6om8148IwxiswSjR62jfsYOsAgFF/Zm Vhjl/phK1RSv8O8VOmwMyQ9YEgRRsLH9FXEtU9eXIfVKdTRN/fQUNRx+9u1PBLTV/WnW zSQRViwNYVMr5bB3QrSF7yYGQtP0XV4FQjqCWhnIc9aOs9L5EArvUpBNLSziL/f1jozK 9vsS/ylXXMKu8iHBWVUIn58sHfiM4iDzPcc9kdZvn0Ol+Lr1tCWqpQZehhpnpWcb+sWJ ry8rEplbaZwkjQLzlo2h30EuXYy/p4gZl4uP5A8SIqqzxbmUZZQYAieGr4RWzSaVAeDq wsMQ== 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:2 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from agentk.vger.email (agentk.vger.email. [2620:137:e000::3:2]) by mx.google.com with ESMTPS id by26-20020a056a02059a00b005c65defc400si5837440pgb.624.2023.12.10.22.27.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 10 Dec 2023 22:27:52 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:2 as permitted sender) client-ip=2620:137:e000::3:2; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:2 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 agentk.vger.email (Postfix) with ESMTP id 479F98065836; Sun, 10 Dec 2023 22:27:50 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at agentk.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233461AbjLKG1E (ORCPT <rfc822;dexuan.linux@gmail.com> + 99 others); Mon, 11 Dec 2023 01:27:04 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50378 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233104AbjLKG1E (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Mon, 11 Dec 2023 01:27:04 -0500 Received: from mailgw.kylinos.cn (mailgw.kylinos.cn [124.126.103.232]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E609DE9; Sun, 10 Dec 2023 22:27:08 -0800 (PST) X-UUID: bf5c7bb1ae0440898305a07d66be4c6e-20231211 X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.33,REQID:cab31997-101f-49df-9c9c-b46868291d5c,IP:5,U RL:0,TC:0,Content:0,EDM:0,RT:0,SF:-15,FILE:0,BULK:0,RULE:Release_Ham,ACTIO N:release,TS:-10 X-CID-INFO: VERSION:1.1.33,REQID:cab31997-101f-49df-9c9c-b46868291d5c,IP:5,URL :0,TC:0,Content:0,EDM:0,RT:0,SF:-15,FILE:0,BULK:0,RULE:Release_Ham,ACTION: release,TS:-10 X-CID-META: VersionHash:364b77b,CLOUDID:5d4e85fd-4a48-46e2-b946-12f04f20af8c,B ulkID:2312111426551GH34SG6,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: bf5c7bb1ae0440898305a07d66be4c6e-20231211 X-User: chentao@kylinos.cn Received: from vt.. [(116.128.244.169)] by mailgw (envelope-from <chentao@kylinos.cn>) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 1798076710; Mon, 11 Dec 2023 14:26:53 +0800 From: Kunwu Chan <chentao@kylinos.cn> To: jesse.brandeburg@intel.com, anthony.l.nguyen@intel.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, richardcochran@gmail.com, jacob.e.keller@intel.com Cc: karol.kolacinski@intel.com, michal.michalik@intel.com, intel-wired-lan@lists.osuosl.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Kunwu Chan <chentao@kylinos.cn>, Kunwu Chan <kunwu.chan@hotmail.com> Subject: [PATCH] ice: Fix some null pointer dereference issues in ice_ptp.c Date: Mon, 11 Dec 2023 14:26:49 +0800 Message-Id: <20231211062649.247148-1-chentao@kylinos.cn> X-Mailer: git-send-email 2.39.2 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 agentk.vger.email Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (agentk.vger.email [0.0.0.0]); Sun, 10 Dec 2023 22:27:50 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1784965835121932132 X-GMAIL-MSGID: 1784965835121932132 |
Series |
ice: Fix some null pointer dereference issues in ice_ptp.c
|
|
Commit Message
Kunwu Chan
Dec. 11, 2023, 6:26 a.m. UTC
devm_kasprintf() returns a pointer to dynamically allocated memory
which can be NULL upon failure.
Fixes: d938a8cca88a ("ice: Auxbus devices & driver for E822 TS")
Cc: Kunwu Chan <kunwu.chan@hotmail.com>
Signed-off-by: Kunwu Chan <chentao@kylinos.cn>
---
drivers/net/ethernet/intel/ice/ice_ptp.c | 6 ++++++
1 file changed, 6 insertions(+)
Comments
On 12/11/23 07:26, Kunwu Chan wrote: > devm_kasprintf() returns a pointer to dynamically allocated memory > which can be NULL upon failure. > > Fixes: d938a8cca88a ("ice: Auxbus devices & driver for E822 TS") > Cc: Kunwu Chan <kunwu.chan@hotmail.com> > Signed-off-by: Kunwu Chan <chentao@kylinos.cn> I would suggest adding "iwl-net" as a target here > --- > drivers/net/ethernet/intel/ice/ice_ptp.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/net/ethernet/intel/ice/ice_ptp.c b/drivers/net/ethernet/intel/ice/ice_ptp.c > index 1eddcbe89b0c..59794ce4f243 100644 > --- a/drivers/net/ethernet/intel/ice/ice_ptp.c > +++ b/drivers/net/ethernet/intel/ice/ice_ptp.c > @@ -2668,6 +2668,8 @@ static int ice_ptp_register_auxbus_driver(struct ice_pf *pf) > name = devm_kasprintf(dev, GFP_KERNEL, "ptp_aux_dev_%u_%u_clk%u", > pf->pdev->bus->number, PCI_SLOT(pf->pdev->devfn), > ice_get_ptp_src_clock_index(&pf->hw)); > + if (!name) > + return -ENOMEM; > > aux_driver->name = name; > aux_driver->shutdown = ice_ptp_auxbus_shutdown; > @@ -2929,6 +2931,10 @@ static int ice_ptp_create_auxbus_device(struct ice_pf *pf) > name = devm_kasprintf(dev, GFP_KERNEL, "ptp_aux_dev_%u_%u_clk%u", > pf->pdev->bus->number, PCI_SLOT(pf->pdev->devfn), > ice_get_ptp_src_clock_index(&pf->hw)); > + if (!name) { > + dev_err(dev, "Failed to allocate memory\n"); Kuba @ [1]: no warnings on allocation failures, there will be a splat for GFP_KERNEL (checkpatch should catch this) [1] https://lore.kernel.org/netdev/20231206195304.6226771d@kernel.org/T/ so just "return -ENOMEM" would be sufficient > + return -ENOMEM; > + } > > aux_dev->name = name; > aux_dev->id = id; I didn't checked but having same code in two places raises questions. Are you overwriting old name here, or our code is just self similar?
Thanks for your suggestion. I made the patch based on linux-next.git(tag:next-20231211). Our code is just self-similar, i didn't override the old name. I keep the logic as it was before. The newest code is: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/net/ethernet/intel/ice/ice_ptp.c#n2747 https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/net/ethernet/intel/ice/ice_ptp.c#n2993 I'll update v2 patch with: 1. update suject prefix to "[PATCH v2 iwl-next]" 2. remove 'dev_err' Thanks again, Kunwu On 2023/12/11 15:15, Przemek Kitszel wrote: > On 12/11/23 07:26, Kunwu Chan wrote: >> devm_kasprintf() returns a pointer to dynamically allocated memory >> which can be NULL upon failure. >> >> Fixes: d938a8cca88a ("ice: Auxbus devices & driver for E822 TS") >> Cc: Kunwu Chan <kunwu.chan@hotmail.com> >> Signed-off-by: Kunwu Chan <chentao@kylinos.cn> > > I would suggest adding "iwl-net" as a target here > >> --- >> drivers/net/ethernet/intel/ice/ice_ptp.c | 6 ++++++ >> 1 file changed, 6 insertions(+) >> >> diff --git a/drivers/net/ethernet/intel/ice/ice_ptp.c >> b/drivers/net/ethernet/intel/ice/ice_ptp.c >> index 1eddcbe89b0c..59794ce4f243 100644 >> --- a/drivers/net/ethernet/intel/ice/ice_ptp.c >> +++ b/drivers/net/ethernet/intel/ice/ice_ptp.c >> @@ -2668,6 +2668,8 @@ static int ice_ptp_register_auxbus_driver(struct >> ice_pf *pf) >> name = devm_kasprintf(dev, GFP_KERNEL, "ptp_aux_dev_%u_%u_clk%u", >> pf->pdev->bus->number, PCI_SLOT(pf->pdev->devfn), >> ice_get_ptp_src_clock_index(&pf->hw)); >> + if (!name) >> + return -ENOMEM; >> aux_driver->name = name; >> aux_driver->shutdown = ice_ptp_auxbus_shutdown; >> @@ -2929,6 +2931,10 @@ static int ice_ptp_create_auxbus_device(struct >> ice_pf *pf) >> name = devm_kasprintf(dev, GFP_KERNEL, "ptp_aux_dev_%u_%u_clk%u", >> pf->pdev->bus->number, PCI_SLOT(pf->pdev->devfn), >> ice_get_ptp_src_clock_index(&pf->hw)); >> + if (!name) { >> + dev_err(dev, "Failed to allocate memory\n"); > > Kuba @ [1]: > no warnings on allocation failures, there will be a splat for GFP_KERNEL > (checkpatch should catch this) > > [1] https://lore.kernel.org/netdev/20231206195304.6226771d@kernel.org/T/ > > so just "return -ENOMEM" would be sufficient > >> + return -ENOMEM; >> + } >> aux_dev->name = name; >> aux_dev->id = id; > > I didn't checked but having same code in two places raises questions. > Are you overwriting old name here, or our code is just self similar?
On 12/11/23 10:32, Kunwu Chan wrote: > Thanks for your suggestion. > > I made the patch based on linux-next.git(tag:next-20231211). > > Our code is just self-similar, i didn't override the old name. > I keep the logic as it was before. > The newest code is: > > https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/net/ethernet/intel/ice/ice_ptp.c#n2747 > > https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/net/ethernet/intel/ice/ice_ptp.c#n2993 > sure, I just checked those, no huge benefit of dedup > I'll update v2 patch with: > 1. update suject prefix to "[PATCH v2 iwl-next]" > 2. remove 'dev_err' > > > Thanks again, > Kunwu Thank you too > > On 2023/12/11 15:15, Przemek Kitszel wrote: >> On 12/11/23 07:26, Kunwu Chan wrote: >>> devm_kasprintf() returns a pointer to dynamically allocated memory >>> which can be NULL upon failure. >>> >>> Fixes: d938a8cca88a ("ice: Auxbus devices & driver for E822 TS") >>> Cc: Kunwu Chan <kunwu.chan@hotmail.com> >>> Signed-off-by: Kunwu Chan <chentao@kylinos.cn> >> >> I would suggest adding "iwl-net" as a target here >> >>> --- >>> drivers/net/ethernet/intel/ice/ice_ptp.c | 6 ++++++ >>> 1 file changed, 6 insertions(+) >>> >>> diff --git a/drivers/net/ethernet/intel/ice/ice_ptp.c >>> b/drivers/net/ethernet/intel/ice/ice_ptp.c >>> index 1eddcbe89b0c..59794ce4f243 100644 >>> --- a/drivers/net/ethernet/intel/ice/ice_ptp.c >>> +++ b/drivers/net/ethernet/intel/ice/ice_ptp.c >>> @@ -2668,6 +2668,8 @@ static int >>> ice_ptp_register_auxbus_driver(struct ice_pf *pf) >>> name = devm_kasprintf(dev, GFP_KERNEL, "ptp_aux_dev_%u_%u_clk%u", >>> pf->pdev->bus->number, PCI_SLOT(pf->pdev->devfn), >>> ice_get_ptp_src_clock_index(&pf->hw)); >>> + if (!name) >>> + return -ENOMEM; >>> aux_driver->name = name; >>> aux_driver->shutdown = ice_ptp_auxbus_shutdown; >>> @@ -2929,6 +2931,10 @@ static int ice_ptp_create_auxbus_device(struct >>> ice_pf *pf) >>> name = devm_kasprintf(dev, GFP_KERNEL, "ptp_aux_dev_%u_%u_clk%u", >>> pf->pdev->bus->number, PCI_SLOT(pf->pdev->devfn), >>> ice_get_ptp_src_clock_index(&pf->hw)); >>> + if (!name) { >>> + dev_err(dev, "Failed to allocate memory\n"); >> >> Kuba @ [1]: >> no warnings on allocation failures, there will be a splat for GFP_KERNEL >> (checkpatch should catch this) >> >> [1] https://lore.kernel.org/netdev/20231206195304.6226771d@kernel.org/T/ >> >> so just "return -ENOMEM" would be sufficient >> >>> + return -ENOMEM; >>> + } >>> aux_dev->name = name; >>> aux_dev->id = id; >> >> I didn't checked but having same code in two places raises questions. >> Are you overwriting old name here, or our code is just self similar? >
diff --git a/drivers/net/ethernet/intel/ice/ice_ptp.c b/drivers/net/ethernet/intel/ice/ice_ptp.c index 1eddcbe89b0c..59794ce4f243 100644 --- a/drivers/net/ethernet/intel/ice/ice_ptp.c +++ b/drivers/net/ethernet/intel/ice/ice_ptp.c @@ -2668,6 +2668,8 @@ static int ice_ptp_register_auxbus_driver(struct ice_pf *pf) name = devm_kasprintf(dev, GFP_KERNEL, "ptp_aux_dev_%u_%u_clk%u", pf->pdev->bus->number, PCI_SLOT(pf->pdev->devfn), ice_get_ptp_src_clock_index(&pf->hw)); + if (!name) + return -ENOMEM; aux_driver->name = name; aux_driver->shutdown = ice_ptp_auxbus_shutdown; @@ -2929,6 +2931,10 @@ static int ice_ptp_create_auxbus_device(struct ice_pf *pf) name = devm_kasprintf(dev, GFP_KERNEL, "ptp_aux_dev_%u_%u_clk%u", pf->pdev->bus->number, PCI_SLOT(pf->pdev->devfn), ice_get_ptp_src_clock_index(&pf->hw)); + if (!name) { + dev_err(dev, "Failed to allocate memory\n"); + return -ENOMEM; + } aux_dev->name = name; aux_dev->id = id;