From: Dan Carpenter <dan.carpenter@linaro.org>
To: James Dutton <james.dutton@gmail.com>
Cc: Johannes Berg <johannes@sipsolutions.net>,
Markus Elfring <Markus.Elfring@web.de>,
Qasim Ijaz <qasdev00@gmail.com>,
linux-wireless@vger.kernel.org,
linux-mediatek@lists.infradead.org,
linux-arm-kernel@lists.infradead.org,
LKML <linux-kernel@vger.kernel.org>,
Angelo Gioacchino Del Regno
<angelogioacchino.delregno@collabora.com>,
Bo Jiao <bo.jiao@mediatek.com>, Felix Fietkau <nbd@nbd.name>,
Lorenzo Bianconi <lorenzo@kernel.org>,
Matthias Brugger <matthias.bgg@gmail.com>,
Peter Chiu <chui-hao.chiu@mediatek.com>,
Ryder Lee <ryder.lee@mediatek.com>,
Sean Wang <sean.wang@mediatek.com>,
Shayne Chen <shayne.chen@mediatek.com>
Subject: Re: [PATCH] wifi: mt76: mt7996: avoid potential null deref in mt7996_get_et_stats()
Date: Mon, 24 Mar 2025 08:50:37 +0300 [thread overview]
Message-ID: <223c7280-443d-49b4-96b2-90472339dcd4@stanley.mountain> (raw)
In-Reply-To: <CAAMvbhGrJ9b3Aab9+2a5zmvEgf0GZFmHLCC7Hud+egUE28voHQ@mail.gmail.com>
On Sun, Mar 23, 2025 at 11:59:45AM +0000, James Dutton wrote:
> As a security side note in relation to the following patch:
> diff --git a/drivers/net/wireless/mediatek/mt76/mt7996/main.c
> b/drivers/net/wireless/mediatek/mt76/mt7996/main.c
> index 66575698aef1..88e013577c0d 100644
> --- a/drivers/net/wireless/mediatek/mt76/mt7996/main.c
> +++ b/drivers/net/wireless/mediatek/mt76/mt7996/main.c
> @@ -68,11 +68,13 @@ static int mt7996_start(struct ieee80211_hw *hw)
>
> static void mt7996_stop_phy(struct mt7996_phy *phy)
> {
> - struct mt7996_dev *dev = phy->dev;
> + struct mt7996_dev *dev;
>
> if (!phy || !test_bit(MT76_STATE_RUNNING, &phy->mt76->state))
> return;
>
> + dev = phy->dev;
> +
> cancel_delayed_work_sync(&phy->mt76->mac_work);
>
> mutex_lock(&dev->mt76.mutex);
>
>
>
> Prior to that patch, the code looks like this:
> static void mt7996_stop_phy(struct mt7996_phy *phy)
> {
> struct mt7996_dev *dev = phy->dev;
>
> if (!phy || !test_bit(MT76_STATE_RUNNING, &phy->mt76->state))
> return;
>
>
> The compiler will completely remove the !phy check entirely because of
> the use above it, so it being present in the source code is completely
> bogus.
No, in the kernel we use the -fno-delete-null-pointer-checks so the
NULL check will always be there.
Also the "phy" point will never be NULL so the check should be removed.
regards,
dan carpenter
> If one actually needs a !phy check to be present in the compiled code,
> one must arrange it as per the patch above.
>
> The fact that the !phy check is in the source code, implies to me that
> someone, in the past, thought it was necessary, but I think an opinion
> could be taken that it is there to obfuscate a security vulnerability.
>
> Kind Regards
>
> James
next prev parent reply other threads:[~2025-03-24 5:52 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-22 14:19 [PATCH] wifi: mt76: mt7996: avoid potential null deref in mt7996_get_et_stats() Qasim Ijaz
2025-03-22 14:55 ` Markus Elfring
2025-03-22 15:54 ` Johannes Berg
2025-03-23 11:59 ` James Dutton
2025-03-24 5:50 ` Dan Carpenter [this message]
2025-03-24 7:33 ` Markus Elfring
2025-03-24 7:43 ` Dan Carpenter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=223c7280-443d-49b4-96b2-90472339dcd4@stanley.mountain \
--to=dan.carpenter@linaro.org \
--cc=Markus.Elfring@web.de \
--cc=angelogioacchino.delregno@collabora.com \
--cc=bo.jiao@mediatek.com \
--cc=chui-hao.chiu@mediatek.com \
--cc=james.dutton@gmail.com \
--cc=johannes@sipsolutions.net \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux-wireless@vger.kernel.org \
--cc=lorenzo@kernel.org \
--cc=matthias.bgg@gmail.com \
--cc=nbd@nbd.name \
--cc=qasdev00@gmail.com \
--cc=ryder.lee@mediatek.com \
--cc=sean.wang@mediatek.com \
--cc=shayne.chen@mediatek.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox