RE: [PATCH][next] rtw89: Fix potential dereference of the null pointer sta
From: Pkshih <pkshih@realtek.com>
Date: 2021-11-04 01:39:16
Also in:
kernel-janitors, lkml, netdev
-----Original Message----- From: Dan Carpenter <redacted> Sent: Wednesday, November 3, 2021 6:21 PM To: Pkshih <pkshih@realtek.com> Cc: Colin King <redacted>; Kalle Valo <redacted>; David S . Miller [off-list ref]; Jakub Kicinski [off-list ref]; linux-wireless@vger.kernel.org; netdev@vger.kernel.org; kernel-janitors@vger.kernel.org; linux-kernel@vger.kernel.org Subject: Re: [PATCH][next] rtw89: Fix potential dereference of the null pointer sta On Wed, Nov 03, 2021 at 12:36:17AM +0000, Pkshih wrote:quoted
quoted
quoted
quoted
diff --git a/drivers/net/wireless/realtek/rtw89/core.cb/drivers/net/wireless/realtek/rtw89/core.c index 06fb6e5b1b37..26f52a25f545 100644--- a/drivers/net/wireless/realtek/rtw89/core.c +++ b/drivers/net/wireless/realtek/rtw89/core.c@@ -1534,9 +1534,14 @@ static bool rtw89_core_txq_agg_wait(struct rtw89_dev *rtwdev, { struct rtw89_txq *rtwtxq = (struct rtw89_txq *)txq->drv_priv; struct ieee80211_sta *sta = txq->sta; - struct rtw89_sta *rtwsta = (struct rtw89_sta *)sta->drv_priv;'sta->drv_priv' is only a pointer, we don't really dereference the data right here, so I think this is safe. More, compiler can optimize this instruction that reorder it to the place just right before using. So, it seems like a false alarm.The warning is about "sta" not "sta->priv". It's not a false positive. I have heard discussions about compilers trying to work around these bugs by re-ordering the code. Is that an option in GCC? It's not something we should rely on, but I'm just curious if it exists in released versions.I say GCC does "reorder" the code, because the object codes of following two codes are identical with default or -Os ccflags.Huh... That's cool. GCC doesn't re-order it for me, but I'm on GCC 8 so maybe it will work when I get to a more modern version.
My GCC is 9.3.0. But, I don't try other versions. -- Ping-Ke