提交 6c8b6e4a 编写于 作者: R Rajkumar Manoharan 提交者: Johannes Berg

nl80211: fix OBSS PD min and max offset validation

The SRG min and max offset won't present when SRG Information Present of
SR control field of Spatial Reuse Parameter Set element set to 0. Per
spec. IEEE802.11ax D7.0, SRG OBSS PD Min Offset ≤ SRG OBSS PD Max
Offset. Hence fix the constrain check to allow same values in both
offset and also call appropriate nla_get function to read the values.

Fixes: 796e90f4 ("cfg80211: add support for parsing OBBS_PD attributes")
Signed-off-by: NRajkumar Manoharan <rmanohar@codeaurora.org>
Link: https://lore.kernel.org/r/1601278091-20313-1-git-send-email-rmanohar@codeaurora.orgSigned-off-by: NJohannes Berg <johannes.berg@intel.com>
上级 21439b65
......@@ -4857,16 +4857,14 @@ static int nl80211_parse_he_obss_pd(struct nlattr *attrs,
if (err)
return err;
if (!tb[NL80211_HE_OBSS_PD_ATTR_MIN_OFFSET] ||
!tb[NL80211_HE_OBSS_PD_ATTR_MAX_OFFSET])
return -EINVAL;
he_obss_pd->min_offset =
nla_get_u32(tb[NL80211_HE_OBSS_PD_ATTR_MIN_OFFSET]);
he_obss_pd->max_offset =
nla_get_u32(tb[NL80211_HE_OBSS_PD_ATTR_MAX_OFFSET]);
if (he_obss_pd->min_offset >= he_obss_pd->max_offset)
if (tb[NL80211_HE_OBSS_PD_ATTR_MIN_OFFSET])
he_obss_pd->min_offset =
nla_get_u8(tb[NL80211_HE_OBSS_PD_ATTR_MIN_OFFSET]);
if (tb[NL80211_HE_OBSS_PD_ATTR_MAX_OFFSET])
he_obss_pd->max_offset =
nla_get_u8(tb[NL80211_HE_OBSS_PD_ATTR_MAX_OFFSET]);
if (he_obss_pd->min_offset > he_obss_pd->max_offset)
return -EINVAL;
he_obss_pd->enable = true;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册