Re: [PATCH] wifi: virt_wifi: avoid reporting connection success with wrong SSID

From: Johannes Berg
Date: Thu Jul 04 2024 - 04:53:13 EST


On Thu, 2024-07-04 at 11:03 +0800, En-Wei Wu wrote:
>
> +#define VIRT_WIFI_SSID_LEN 8
> +#define VIRT_WIFI_SSID "VirtWifi"

Use strlen(VIRT_WIFI_SSID) for VIRT_WIFI_SSID_LEN maybe? It should be
constant "enough" for the compiler.

> + if (!sme->ssid) {
> + wiphy_err(wiphy, "invalid SSID\n");
> + return -EINVAL;

I wouldn't print an error here

> + ssid_len = min_t(u32, sme->ssid_len, IEEE80211_MAX_SSID_LEN);

The min_t() is unnecessary, cfg80211 won't give you too long SSIDs.

> bool right_addr = ether_addr_equal(requested_bss, fake_router_bssid);
> + 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) : false);

the ternary seems odd, why not just

priv->connect_requested_ssid_len == VIRT_WIFI_SSID_LEN &&
!memcmp(...);

?

johannes