diff --git a/trunk/PKGBUILD b/trunk/PKGBUILD index 277dad5..4ff0fe0 100644 --- a/trunk/PKGBUILD +++ b/trunk/PKGBUILD @@ -17,6 +17,7 @@ source=( wpa_supplicant_tls.patch # More permissive TLS fallback wpa_supplicant_dbus_service_syslog.patch # Unit improvements from Ubuntu wpa_supplicant_service_ignore-on-isolate.patch # More unit improvements from Ubuntu + wpa_supplicant-add-extra-ies-only-if-allowed-by-driver.patch wpa_supplicant_config ) validpgpkeys=('EC4AA0A991A5F2464582D52D2B6EF432EFC895FA') # Jouni Malinen @@ -25,6 +26,7 @@ sha256sums=('20df7ae5154b3830355f8ab4269123a87affdea59fe74fe9292a91d0d7e17b2f' '08915b040d03a3e07cdc8ea6c76b497e00059e01ce85b67413dfe41d4fc68992' '60f6a1cf2e124813dfce1da78ee1818e2ff5236aafa4113c7ae3b3f2a0b84006' 'd42bdbf3d4980b9f0a819612df0c39843c7e96c8afcb103aa656c824f93790b0' + '285d7a84a5315d11dab1b7c155f9a90ba21f201b316642a163a755a5f6bbe3ea' '385c956607d9a4966b13458db60a29b7556ff0c9928d7fef59381678ce79f13b') prepare() { diff --git a/trunk/wpa_supplicant-add-extra-ies-only-if-allowed-by-driver.patch b/trunk/wpa_supplicant-add-extra-ies-only-if-allowed-by-driver.patch new file mode 100644 index 0000000..b8eb32d --- /dev/null +++ b/trunk/wpa_supplicant-add-extra-ies-only-if-allowed-by-driver.patch @@ -0,0 +1,57 @@ +From 05a5ff7abec6fb4cd16273b9dc90776ad2385f38 Mon Sep 17 00:00:00 2001 +From: David Bauer +Date: Sun, 30 Jan 2022 13:44:16 +0100 +Subject: [PATCH] nl80211: add extra-ies only if allowed by driver + +Signed-off-by: David Bauer +--- + src/drivers/driver.h | 3 +++ + src/drivers/driver_nl80211_capa.c | 4 ++++ + src/drivers/driver_nl80211_scan.c | 2 +- + 3 files changed, 8 insertions(+), 1 deletion(-) + +diff --git a/src/drivers/driver.h b/src/drivers/driver.h +index d3312a34d..b5b626451 100644 +--- a/src/drivers/driver.h ++++ b/src/drivers/driver.h +@@ -2052,6 +2052,9 @@ struct wpa_driver_capa { + /** Maximum number of iterations in a single scan plan */ + u32 max_sched_scan_plan_iterations; + ++ /** Maximum number of extra IE bytes for scans */ ++ u16 max_scan_ie_len; ++ + /** Whether sched_scan (offloaded scanning) is supported */ + int sched_scan_supported; + +diff --git a/src/drivers/driver_nl80211_capa.c b/src/drivers/driver_nl80211_capa.c +index 83868b78e..b33b6badb 100644 +--- a/src/drivers/driver_nl80211_capa.c ++++ b/src/drivers/driver_nl80211_capa.c +@@ -885,6 +885,10 @@ static int wiphy_info_handler(struct nl_msg *msg, void *arg) + nla_get_u32(tb[NL80211_ATTR_MAX_SCAN_PLAN_ITERATIONS]); + } + ++ if (tb[NL80211_ATTR_MAX_SCAN_IE_LEN]) ++ capa->max_scan_ie_len = ++ nla_get_u16(tb[NL80211_ATTR_MAX_SCAN_IE_LEN]); ++ + if (tb[NL80211_ATTR_MAX_MATCH_SETS]) + capa->max_match_sets = + nla_get_u8(tb[NL80211_ATTR_MAX_MATCH_SETS]); +diff --git a/src/drivers/driver_nl80211_scan.c b/src/drivers/driver_nl80211_scan.c +index 131608480..62d63cd5b 100644 +--- a/src/drivers/driver_nl80211_scan.c ++++ b/src/drivers/driver_nl80211_scan.c +@@ -207,7 +207,7 @@ nl80211_scan_common(struct i802_bss *bss, u8 cmd, + wpa_printf(MSG_DEBUG, "nl80211: Passive scan requested"); + } + +- if (params->extra_ies) { ++ if (params->extra_ies && params->extra_ies_len <= drv->capa.max_scan_ie_len) { + wpa_hexdump(MSG_MSGDUMP, "nl80211: Scan extra IEs", + params->extra_ies, params->extra_ies_len); + if (nla_put(msg, NL80211_ATTR_IE, params->extra_ies_len, +-- +2.35.0 +