git: 7354782698f1 - main - net80211: improve error handling from ieee80211_parse_beacon()

From: Bjoern A. Zeeb <bz_at_FreeBSD.org>
Date: Thu, 07 Apr 2022 20:55:19 UTC
The branch main has been updated by bz:

URL: https://cgit.FreeBSD.org/src/commit/?id=7354782698f1cf5d6b368a9b1e65cfe3ee7f235c

commit 7354782698f1cf5d6b368a9b1e65cfe3ee7f235c
Author:     Bjoern A. Zeeb <bz@FreeBSD.org>
AuthorDate: 2022-04-07 20:50:39 +0000
Commit:     Bjoern A. Zeeb <bz@FreeBSD.org>
CommitDate: 2022-04-07 20:50:39 +0000

    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;