mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00
wifi: cfg80211: fix off-by-one in element defrag
If a fragment is the last element, it's erroneously not
accepted. Fix that.
Fixes: f837a653a0
("wifi: cfg80211: add element defragmentation helper")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
Link: https://lore.kernel.org/r/20230827135854.adca9fbd3317.I6b2df45eb71513f3e48efd196ae3cddec362dc1c@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
a469a5938d
commit
43125539fc
1 changed files with 2 additions and 2 deletions
|
@ -2354,8 +2354,8 @@ ssize_t cfg80211_defragment_element(const struct element *elem, const u8 *ies,
|
|||
|
||||
/* elem might be invalid after the memmove */
|
||||
next = (void *)(elem->data + elem->datalen);
|
||||
|
||||
elem_datalen = elem->datalen;
|
||||
|
||||
if (elem->id == WLAN_EID_EXTENSION) {
|
||||
copied = elem->datalen - 1;
|
||||
if (copied > data_len)
|
||||
|
@ -2376,7 +2376,7 @@ ssize_t cfg80211_defragment_element(const struct element *elem, const u8 *ies,
|
|||
|
||||
for (elem = next;
|
||||
elem->data < ies + ieslen &&
|
||||
elem->data + elem->datalen < ies + ieslen;
|
||||
elem->data + elem->datalen <= ies + ieslen;
|
||||
elem = next) {
|
||||
/* elem might be invalid after the memmove */
|
||||
next = (void *)(elem->data + elem->datalen);
|
||||
|
|
Loading…
Add table
Reference in a new issue