From 7354782698f1cf5d6b368a9b1e65cfe3ee7f235c Mon Sep 17 00:00:00 2001 From: "Bjoern A. Zeeb" Date: Thu, 7 Apr 2022 20:50:39 +0000 Subject: [PATCH] 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 --- sys/net80211/ieee80211_input.c | 2 +- sys/net80211/ieee80211_scan.h | 3 ++- 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;