diff options
author | Benjamin Berg <benjamin.berg@intel.com> | 2023-06-18 21:50:00 +0300 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2023-06-19 13:12:43 +0200 |
commit | 8dcc91c446687727f88997a2e177cdab740ef092 (patch) | |
tree | 14acdcaa7817791c334eaf40b53bccb39bac6144 /net/wireless | |
parent | c870d66f1b7f51fa3401771ff6c41fd78adb869e (diff) | |
download | linux-8dcc91c446687727f88997a2e177cdab740ef092.tar.gz linux-8dcc91c446687727f88997a2e177cdab740ef092.tar.bz2 linux-8dcc91c446687727f88997a2e177cdab740ef092.zip |
wifi: cfg80211: stop parsing after allocation failure
The error handling code would break out of the loop incorrectly,
causing the rest of the message to be misinterpreted. Fix this by
also jumping out of the surrounding while loop, which will trigger
the error detection code.
Signed-off-by: Benjamin Berg <benjamin.berg@intel.com>
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
Link: https://lore.kernel.org/r/20230618214436.0ffac98475cf.I6f5c08a09f5c9fced01497b95a9841ffd1b039f8@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/wireless')
-rw-r--r-- | net/wireless/scan.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/wireless/scan.c b/net/wireless/scan.c index df868662e1e0..91671698aaec 100644 --- a/net/wireless/scan.c +++ b/net/wireless/scan.c @@ -707,7 +707,7 @@ static int cfg80211_parse_colocated_ap(const struct cfg80211_bss_ies *ies, GFP_ATOMIC); if (!entry) - break; + goto error; entry->center_freq = freq; @@ -723,6 +723,7 @@ static int cfg80211_parse_colocated_ap(const struct cfg80211_bss_ies *ies, } } +error: if (pos != end) { cfg80211_free_coloc_ap_list(&ap_list); return 0; |