net80211: proper ssid length check in setmlme_assoc_adhoc()
A user supplied SSID length is used without proper checks in setmlme_assoc_adhoc() which can lead to copies beyond the end of the user supplied buffer. The ssid is a fixed size array for the ioctl and the argument to setmlme_assoc_adhoc(). In addition to an ssid_len check of 0 also error in case the ssid_len is larger than the size of the ssid array to prevent problems. PR: 254737 Reported by: Tommaso (cutesmilee.research protonmail.com) MFC after: 3 days Reviewed by: emaste, adrian Differential Revision: https://reviews.freebsd.org/D32341
This commit is contained in:
parent
bd19202c92
commit
526370fb85
@ -1591,7 +1591,7 @@ setmlme_assoc_adhoc(struct ieee80211vap *vap,
|
||||
("expected opmode IBSS or AHDEMO not %s",
|
||||
ieee80211_opmode_name[vap->iv_opmode]));
|
||||
|
||||
if (ssid_len == 0)
|
||||
if (ssid_len == 0 || ssid_len > sizeof(ssid))
|
||||
return EINVAL;
|
||||
|
||||
sr = IEEE80211_MALLOC(sizeof(*sr), M_TEMP,
|
||||
|
Loading…
Reference in New Issue
Block a user