From 956b96133763dcfdf1b78de0910631f610df2d7b Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Mon, 18 Jul 2022 23:01:19 +0200 Subject: wifi: mac80211: more station handling sanity checks Add more sanity checks to the API handling, we shouldn't be able to create a station without links, nor should we be able to add a link to a station that wasn't created as an MLD with links in the first place. Signed-off-by: Johannes Berg --- net/mac80211/cfg.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'net/mac80211/cfg.c') diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c index fa4379761e12..f519d9cf6e23 100644 --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c @@ -4649,6 +4649,9 @@ static int sta_add_link_station(struct ieee80211_local *local, if (!sta) return -ENOENT; + if (!sta->sta.valid_links) + return -EINVAL; + if (sta->sta.valid_links & BIT(params->link_id)) return -EALREADY; @@ -4724,6 +4727,10 @@ static int sta_del_link_station(struct ieee80211_sub_if_data *sdata, if (!(sta->sta.valid_links & BIT(params->link_id))) return -EINVAL; + /* must not create a STA without links */ + if (sta->sta.valid_links == BIT(params->link_id)) + return -EINVAL; + ieee80211_sta_remove_link(sta, params->link_id); return 0; -- cgit v1.2.3