Received: by 2002:a05:7412:8d11:b0:fa:4934:9f with SMTP id bj17csp320142rdb; Sun, 14 Jan 2024 19:50:19 -0800 (PST) X-Google-Smtp-Source: AGHT+IH3B+k9WYAXMH3PZ6bPJZkIeL5uPcPPj4pLF200FcSZVS66/CLLOGT/8BMq+6E5dvA+RjzQ X-Received: by 2002:a05:620a:4108:b0:783:2011:e1ea with SMTP id j8-20020a05620a410800b007832011e1eamr5731234qko.92.1705290618889; Sun, 14 Jan 2024 19:50:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1705290618; cv=none; d=google.com; s=arc-20160816; b=iyxosZLIfLyW7AWyOmqWPxBiIKr9lmS97w4ZK5ajNbCVY4O9vsD4SCYiz/aPr7SwCC pcPiz4sLHAvvpwVOEI4gVZ8bHEllV+zKJNkQpd8a6w8Dy9B9qQf2UViEyHZ+bAUG7oZ5 v1f41eOEu89qbY0sI25jjkbwBBBS4QOl+yIHUFIHbl7XQKa6HBgtYP4WJLpsIy6W8GIB 1vDJyzJJ/t819CEGrhAxfCw5PDjDLt+IOACRCM58BwMPEYxQBoFrjHx/gFyq5a1lG5FF kvkMkrTgJv+t01LAKyzJWOtB5HLEenoMqWg/XLIrAvNUNhnTrDIsZ13+nyx41WGITfQy HIIw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:date:message-id; bh=OYrPk4c3O52bB7PeNH4Qe0HwlK8Q2drYISGAUqhPzr4=; fh=07ADY42Nfv5jDeN5HrhZFlco+Ce7XmZg5R6/IkidP+4=; b=rFFyb6DGfqtUAgJws+lRgHlH5pqg/dCDiYegF6dG7BGTZ1/m7hhc5pVijKGnKbWQb/ qv88lnkIVvK+2gJCCQzcGZSNNOe5lqRWxGMN9mH67rAc5iHLbNAxmPOeDmmnEk5ReKLX FI/ENs740yOksu4XwTfjzna+mFFs0idtVh2KYWmdvRUnf3j6/wPysU/HsbZYR83xnO2I jeLGokNOfeDtGMyLrP14t+Yyi6qURMP+kI7wgAJsu3O/jMMG2HlwTs3hqbH4tp6xctpg TDqkbB6KKaqQb0derSNmKLRpdZ7LXBEclj9oyMNL84IszYIOaMZfou8t4VMKu3dnEel1 pfKA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel+bounces-25610-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-25610-linux.lists.archive=gmail.com@vger.kernel.org" Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id ou25-20020a05620a621900b0078336deaed3si7210945qkn.691.2024.01.14.19.50.18 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Jan 2024 19:50:18 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-25610-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel+bounces-25610-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-25610-linux.lists.archive=gmail.com@vger.kernel.org" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 4F11F1C20E4B for ; Mon, 15 Jan 2024 03:50:18 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id B6C9720F7; Mon, 15 Jan 2024 03:50:08 +0000 (UTC) Received: from mailgw.kylinos.cn (mailgw.kylinos.cn [124.126.103.232]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 38F44186A; Mon, 15 Jan 2024 03:49:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kylinos.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kylinos.cn X-UUID: ad3584cdeded4aa7aa35c29c9456ddfa-20240115 X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.35,REQID:30ae8a57-8a58-4796-9abd-fb1752245180,IP:10, URL:0,TC:0,Content:0,EDM:0,RT:0,SF:-15,FILE:0,BULK:0,RULE:Release_Ham,ACTI ON:release,TS:-5 X-CID-INFO: VERSION:1.1.35,REQID:30ae8a57-8a58-4796-9abd-fb1752245180,IP:10,UR L:0,TC:0,Content:0,EDM:0,RT:0,SF:-15,FILE:0,BULK:0,RULE:Release_Ham,ACTION :release,TS:-5 X-CID-META: VersionHash:5d391d7,CLOUDID:c1d0292f-1ab8-4133-9780-81938111c800,B ulkID:240112233230SFMXI8SS,BulkQuantity:6,Recheck:0,SF:64|66|24|17|19|44|1 02,TC:nil,Content:0,EDM:-3,IP:-2,URL:11|1,File:nil,Bulk:40,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,NGT X-CID-BAS: 0,NGT,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR,TF_CID_SPAM_FAS,TF_CID_SPAM_FSD,TF_CID_SPAM_FSI, TF_CID_SPAM_ULN X-UUID: ad3584cdeded4aa7aa35c29c9456ddfa-20240115 Received: from mail.kylinos.cn [(39.156.73.10)] by mailgw (envelope-from ) (Generic MTA) with ESMTP id 530555269; Mon, 15 Jan 2024 11:02:14 +0800 Received: from mail.kylinos.cn (localhost [127.0.0.1]) by mail.kylinos.cn (NSMail) with SMTP id E7E4BE000EB9; Mon, 15 Jan 2024 11:02:13 +0800 (CST) X-ns-mid: postfix-65A4A035-870995346 Received: from [172.20.15.234] (unknown [172.20.15.234]) by mail.kylinos.cn (NSMail) with ESMTPA id BCF8BE000EB9; Mon, 15 Jan 2024 11:02:10 +0800 (CST) Message-ID: Date: Mon, 15 Jan 2024 11:02:09 +0800 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH net] net: phy: Fix possible NULL pointer dereference issues caused by phy_attached_info_irq To: Andrew Lunn Cc: hkallweit1@gmail.com, linux@armlinux.org.uk, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, f.fainelli@gmail.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org References: <20240112095724.154197-1-chentao@kylinos.cn> <627c9558-04df-43a6-b6e4-a13f24a8bc1d@lunn.ch> Content-Language: en-US From: Kunwu Chan In-Reply-To: <627c9558-04df-43a6-b6e4-a13f24a8bc1d@lunn.ch> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Thanks for your reply. On 2024/1/12 23:32, Andrew Lunn wrote: > On Fri, Jan 12, 2024 at 05:57:24PM +0800, Kunwu Chan wrote: >> kasprintf() returns a pointer to dynamically allocated memory >> which can be NULL upon failure. Ensure the allocation was successful >> by checking the pointer validity. >> >> Fixes: e27f178793de ("net: phy: Added IRQ print to phylink_bringup_phy()") >> Signed-off-by: Kunwu Chan >> --- >> drivers/net/phy/phy_device.c | 3 +++ >> drivers/net/phy/phylink.c | 2 ++ >> 2 files changed, 5 insertions(+) >> >> diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c >> index 3611ea64875e..10fa99d957c0 100644 >> --- a/drivers/net/phy/phy_device.c >> +++ b/drivers/net/phy/phy_device.c >> @@ -1299,6 +1299,9 @@ void phy_attached_print(struct phy_device *phydev, const char *fmt, ...) >> const char *unbound = phydev->drv ? "" : "[unbound] "; >> char *irq_str = phy_attached_info_irq(phydev); >> >> + if (!irq_str) >> + return; >> + >> if (!fmt) { >> phydev_info(phydev, ATTACHED_FMT "\n", unbound, >> phydev_name(phydev), irq_str); > > This part looks O.K. > >> diff --git a/drivers/net/phy/phylink.c b/drivers/net/phy/phylink.c >> index ed0b4ccaa6a6..db0a545c9468 100644 >> --- a/drivers/net/phy/phylink.c >> +++ b/drivers/net/phy/phylink.c >> @@ -1884,6 +1884,8 @@ static int phylink_bringup_phy(struct phylink *pl, struct phy_device *phy, >> phy->phy_link_change = phylink_phy_change; >> >> irq_str = phy_attached_info_irq(phy); >> + if (!irq_str) >> + return -ENOMEM; > > Here, i would just skip the print and continue with the reset of the > function. The print is just useful information, its not a big problem > if its not printed. However, if this function does not complete, the > network interface is likely to be dead. Thanks for the reminder. The second part doesn't look so perfect, can we just print an empty string when the irq_str is empty? --- a/drivers/net/phy/phylink.c +++ b/drivers/net/phy/phylink.c @@ -1886,7 +1886,7 @@ static int phylink_bringup_phy(struct phylink *pl, struct phy_device *phy, irq_str = phy_attached_info_irq(phy); phylink_info(pl, "PHY [%s] driver [%s] (irq=%s)\n", - dev_name(&phy->mdio.dev), phy->drv->name, irq_str); + dev_name(&phy->mdio.dev), phy->drv->name, irq_str ? irq_str : ""); kfree(irq_str); > > Andrew -- Thanks, Kunwu