Commit 98849ba2 authored by Johannes Berg's avatar Johannes Berg

wifi: mac80211: check defragmentation succeeded

We need to check that cfg80211_defragment_element()
didn't return an error, since it can fail due to bad
input, and we didn't catch that before.

Fixes: 8eb8dd2f ("wifi: mac80211: Support link removal using Reconfiguration ML element")
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
Signed-off-by: default avatarMiri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20231211085121.8595a6b67fc0.I1225edd8f98355e007f96502e358e476c7971d8c@changeidSigned-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent 63bafd9d
...@@ -5782,7 +5782,7 @@ static void ieee80211_ml_reconfiguration(struct ieee80211_sub_if_data *sdata, ...@@ -5782,7 +5782,7 @@ static void ieee80211_ml_reconfiguration(struct ieee80211_sub_if_data *sdata,
{ {
const struct ieee80211_multi_link_elem *ml; const struct ieee80211_multi_link_elem *ml;
const struct element *sub; const struct element *sub;
size_t ml_len; ssize_t ml_len;
unsigned long removed_links = 0; unsigned long removed_links = 0;
u16 link_removal_timeout[IEEE80211_MLD_MAX_NUM_LINKS] = {}; u16 link_removal_timeout[IEEE80211_MLD_MAX_NUM_LINKS] = {};
u8 link_id; u8 link_id;
...@@ -5798,6 +5798,8 @@ static void ieee80211_ml_reconfiguration(struct ieee80211_sub_if_data *sdata, ...@@ -5798,6 +5798,8 @@ static void ieee80211_ml_reconfiguration(struct ieee80211_sub_if_data *sdata,
elems->scratch + elems->scratch_len - elems->scratch + elems->scratch_len -
elems->scratch_pos, elems->scratch_pos,
WLAN_EID_FRAGMENT); WLAN_EID_FRAGMENT);
if (ml_len < 0)
return;
elems->ml_reconf = (const void *)elems->scratch_pos; elems->ml_reconf = (const void *)elems->scratch_pos;
elems->ml_reconf_len = ml_len; elems->ml_reconf_len = ml_len;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment