]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
wifi: virt_wifi: don't use strlen() in const context
authorJohannes Berg <johannes.berg@intel.com>
Tue, 9 Jul 2024 06:34:09 +0000 (08:34 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 9 Jul 2024 06:49:56 +0000 (08:49 +0200)
Looks like not all compilers allow strlen(constant) as
a constant, so don't do that. Instead, revert back to
defining the length as the first submission had it.

Fixes: b5d14b0c6716 ("wifi: virt_wifi: avoid reporting connection success with wrong SSID")
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202407090934.NnR1TUbW-lkp@intel.com/
Closes: https://lore.kernel.org/oe-kbuild-all/202407090944.mpwLHGt9-lkp@intel.com/
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/virtual/virt_wifi.c

index d2271a7644a0183cc3da953c3a578344d9280b5d..4ee3740804667b5a1cf846a4cbd7ae0406b98cdc 100644 (file)
@@ -137,6 +137,7 @@ static struct ieee80211_supported_band band_5ghz = {
 static u8 fake_router_bssid[ETH_ALEN] __ro_after_init = {};
 
 #define VIRT_WIFI_SSID "VirtWifi"
+#define VIRT_WIFI_SSID_LEN 8
 
 static void virt_wifi_inform_bss(struct wiphy *wiphy)
 {
@@ -148,7 +149,7 @@ static void virt_wifi_inform_bss(struct wiphy *wiphy)
                u8 ssid[8];
        } __packed ssid = {
                .tag = WLAN_EID_SSID,
-               .len = strlen(VIRT_WIFI_SSID),
+               .len = VIRT_WIFI_SSID_LEN,
                .ssid = VIRT_WIFI_SSID,
        };
 
@@ -262,7 +263,7 @@ static void virt_wifi_connect_complete(struct work_struct *work)
                container_of(work, struct virt_wifi_netdev_priv, connect.work);
        u8 *requested_bss = priv->connect_requested_bss;
        bool right_addr = ether_addr_equal(requested_bss, fake_router_bssid);
-       bool right_ssid = priv->connect_requested_ssid_len == strlen(VIRT_WIFI_SSID) &&
+       bool right_ssid = priv->connect_requested_ssid_len == VIRT_WIFI_SSID_LEN &&
                          !memcmp(priv->connect_requested_ssid, VIRT_WIFI_SSID,
                                  priv->connect_requested_ssid_len);
        u16 status = WLAN_STATUS_SUCCESS;