nl80211_pre_doit() using nla_get_u16() to read u8 attribute
NL80211_ATTR_MLO_LINK_ID. Fix this by using nla_get_u8() to
read NL80211_ATTR_MLO_LINK_ID attribute.
Signed-off-by: Veerendranath Jakkam <[email protected]>
---
net/wireless/nl80211.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index eda2ad0..e20d0fc 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -15835,7 +15835,7 @@ static int nl80211_pre_doit(const struct genl_ops *ops, struct sk_buff *skb,
/* MLO -> require valid link ID */
if (wdev->valid_links &&
(!link_id ||
- !(wdev->valid_links & BIT(nla_get_u16(link_id))))) {
+ !(wdev->valid_links & BIT(nla_get_u8(link_id))))) {
err = -EINVAL;
goto out_unlock;
}
--
2.7.4
On 7/10/2022 10:34 PM, Veerendranath Jakkam wrote:
> nl80211_pre_doit() using nla_get_u16() to read u8 attribute
I would be more explicit and say:
nl80211_pre_doit() is incorrectly using ...
> NL80211_ATTR_MLO_LINK_ID. Fix this by using nla_get_u8() to
> read NL80211_ATTR_MLO_LINK_ID attribute.
>
> Signed-off-by: Veerendranath Jakkam <[email protected]>
> ---
> net/wireless/nl80211.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
> index eda2ad0..e20d0fc 100644
> --- a/net/wireless/nl80211.c
> +++ b/net/wireless/nl80211.c
> @@ -15835,7 +15835,7 @@ static int nl80211_pre_doit(const struct genl_ops *ops, struct sk_buff *skb,
> /* MLO -> require valid link ID */
> if (wdev->valid_links &&
> (!link_id ||
> - !(wdev->valid_links & BIT(nla_get_u16(link_id))))) {
> + !(wdev->valid_links & BIT(nla_get_u8(link_id))))) {
> err = -EINVAL;
> goto out_unlock;
> }
On 7/11/2022 8:59 AM, Jeff Johnson wrote:
> On 7/10/2022 10:34 PM, Veerendranath Jakkam wrote:
>> nl80211_pre_doit() using nla_get_u16() to read u8 attribute
>
> I would be more explicit and say:
> nl80211_pre_doit() is incorrectly using ...
but I see this is already in wireless-next so nevermind :)