aboutsummaryrefslogtreecommitdiff
path: root/sys/net80211
diff options
context:
space:
mode:
authorBjoern A. Zeeb <bz@FreeBSD.org>2022-04-07 20:50:39 +0000
committerBjoern A. Zeeb <bz@FreeBSD.org>2022-04-07 20:50:39 +0000
commit7354782698f1cf5d6b368a9b1e65cfe3ee7f235c (patch)
tree283c2bf626d3c46ff82cae2bb7571415cbef315a /sys/net80211
parentebb16d5e93934c27ccf4e54e780db0b80bd4142e (diff)
downloadsrc-7354782698f1cf5d6b368a9b1e65cfe3ee7f235c.tar.gz
src-7354782698f1cf5d6b368a9b1e65cfe3ee7f235c.zip
net80211: improve error handling from ieee80211_parse_beacon()
Following up on fb8c87b4f3bfdfac014f9d894fe75fbad0391b24, which was supposed to go into all supported branches, increase ieee80211_scanparams status field from 8bit to 32bit (enum size) and add a dedicated error code for Mesh ID. Sponsored by: The FreeBSD Foundation
Diffstat (limited to 'sys/net80211')
-rw-r--r--sys/net80211/ieee80211_input.c2
-rw-r--r--sys/net80211/ieee80211_scan.h3
2 files changed, 3 insertions, 2 deletions
diff --git a/sys/net80211/ieee80211_input.c b/sys/net80211/ieee80211_input.c
index 7406c92d6d0e..683c8d5a06f1 100644
--- a/sys/net80211/ieee80211_input.c
+++ b/sys/net80211/ieee80211_input.c
@@ -745,7 +745,7 @@ ieee80211_parse_beacon(struct ieee80211_node *ni, struct mbuf *m,
#ifdef IEEE80211_SUPPORT_MESH
if (scan->meshid != NULL) {
IEEE80211_VERIFY_ELEMENT(scan->meshid, IEEE80211_MESHID_LEN,
- scan->status |= IEEE80211_BPARSE_RATES_INVALID);
+ scan->status |= IEEE80211_BPARSE_MESHID_INVALID);
}
#endif
/*
diff --git a/sys/net80211/ieee80211_scan.h b/sys/net80211/ieee80211_scan.h
index 07d927cfa1e1..e1f7b786be19 100644
--- a/sys/net80211/ieee80211_scan.h
+++ b/sys/net80211/ieee80211_scan.h
@@ -213,6 +213,7 @@ enum {
IEEE80211_BPARSE_OFFCHAN = 0x20, /* DSPARMS chan != curchan */
IEEE80211_BPARSE_BINTVAL_INVALID= 0x40, /* invalid beacon interval */
IEEE80211_BPARSE_CSA_INVALID = 0x80, /* invalid CSA ie */
+ IEEE80211_BPARSE_MESHID_INVALID = 0x100, /* invalid Mesh ID ie */
};
/*
@@ -223,7 +224,7 @@ enum {
* All multi-byte values must be in host byte order.
*/
struct ieee80211_scanparams {
- uint8_t status; /* bitmask of IEEE80211_BPARSE_* */
+ uint32_t status; /* bitmask of IEEE80211_BPARSE_* */
uint8_t chan; /* channel # from FH/DSPARMS */
uint8_t bchan; /* curchan's channel # */
uint8_t fhindex;