wil6210: protect against invalid length of tx management frame
This check is not valid: if (len < sizeof(struct ieee80211_mgmt)) Because ieee80211_mgmt contains the ieee80211 header followed by a union of various action frames, so the check will fail when trying to send any management frame which is smaller than the largest action frame in the union. This breaks FST and possibly other features. Fix this by checking only against the header structure size. Change-Id: I730300e180d9509f3555f16a0803af53cc8eca0a Signed-off-by: Lior David <liord@codeaurora.org>
This commit is contained in:
parent
1e931d0f3f
commit
1b3f613621
1 changed files with 1 additions and 1 deletions
|
@ -960,7 +960,7 @@ int wil_cfg80211_mgmt_tx(struct wiphy *wiphy, struct wireless_dev *wdev,
|
|||
wil_hex_dump_misc("mgmt tx frame ", DUMP_PREFIX_OFFSET, 16, 1, buf,
|
||||
len, true);
|
||||
|
||||
if (len < sizeof(struct ieee80211_mgmt))
|
||||
if (len < sizeof(struct ieee80211_hdr_3addr))
|
||||
return -EINVAL;
|
||||
|
||||
cmd = kmalloc(sizeof(*cmd) + len, GFP_KERNEL);
|
||||
|
|
Loading…
Add table
Reference in a new issue