diff options
author | rpaulo <rpaulo@FreeBSD.org> | 2010-02-03 10:12:49 +0000 |
---|---|---|
committer | rpaulo <rpaulo@FreeBSD.org> | 2010-02-03 10:12:49 +0000 |
commit | dcc17451da0e7bd6ea4fd2031a20ba568e236f1e (patch) | |
tree | 3a67d107ec1afe9f959a6e4b6f7ed82f95e73746 /sys/net80211 | |
parent | adb938921e527a609b1972aa726b47ea6ca0b678 (diff) | |
download | FreeBSD-src-dcc17451da0e7bd6ea4fd2031a20ba568e236f1e.zip FreeBSD-src-dcc17451da0e7bd6ea4fd2031a20ba568e236f1e.tar.gz |
Avoid a null pointer deref when parsing the meshid.
Found with: clang static analyzer
Diffstat (limited to 'sys/net80211')
-rw-r--r-- | sys/net80211/ieee80211_mesh.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/net80211/ieee80211_mesh.c b/sys/net80211/ieee80211_mesh.c index b07708b..417337b 100644 --- a/sys/net80211/ieee80211_mesh.c +++ b/sys/net80211/ieee80211_mesh.c @@ -1468,11 +1468,12 @@ mesh_recv_mgmt(struct ieee80211_node *ni, struct mbuf *m0, int subtype, if (xrates != NULL) IEEE80211_VERIFY_ELEMENT(xrates, IEEE80211_RATE_MAXSIZE - rates[1], return); - if (meshid != NULL) + if (meshid != NULL) { IEEE80211_VERIFY_ELEMENT(meshid, IEEE80211_MESHID_LEN, return); - /* NB: meshid, not ssid */ - IEEE80211_VERIFY_SSID(vap->iv_bss, meshid, return); + /* NB: meshid, not ssid */ + IEEE80211_VERIFY_SSID(vap->iv_bss, meshid, return); + } /* XXX find a better class or define it's own */ IEEE80211_NOTE_MAC(vap, IEEE80211_MSG_INPUT, wh->i_addr2, |