All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bala Shanmugam <bkamatch@qca.qualcomm.com>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: <linville@tuxdriver.com>, <linux-wireless@vger.kernel.org>
Subject: Re: [PATCH] cfg80211: Validate legacy rateset.
Date: Thu, 19 Apr 2012 20:13:37 +0530	[thread overview]
Message-ID: <4F902499.2020902@qca.qualcomm.com> (raw)
In-Reply-To: <4F8ECEF4.4010507@sipsolutions.net>

On 04/18/2012 07:55 PM, Johannes Berg wrote:
> On 4/17/2012 11:03 PM, Bala Shanmugam wrote:
>> On 04/17/2012 07:29 PM, Johannes Berg wrote:
>>> On 4/17/2012 1:07 AM, Bala Shanmugam wrote:
>>>> On 04/16/2012 11:01 PM, Johannes Berg wrote:
>>>>> On 4/12/2012 11:22 PM, Bala Shanmugam wrote:
>>>>>> Legacy rates are not validated while configuring
>>>>>> tx rateset using iw. So below cmd is accepted by nl80211.
>>>>>> sudo iw wlan2 set bitrates legacy-2.4 3
>>>>>>
>>>>>> Validate legacy rates and return
>>>>>> error while configuring improper rates.
>>>>>>
>>>>>> Signed-off-by: Bala Shanmugam<bkamatch@qca.qualcomm.com>
>>>>>> ---
>>>>>> net/wireless/nl80211.c | 2 ++
>>>>>> 1 files changed, 2 insertions(+), 0 deletions(-)
>>>>>>
>>>>>> diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
>>>>>> index e49da27..cc7bef7 100644
>>>>>> --- a/net/wireless/nl80211.c
>>>>>> +++ b/net/wireless/nl80211.c
>>>>>> @@ -5540,6 +5540,8 @@ static int nl80211_set_tx_bitrate_mask(struct
>>>>>> sk_buff *skb,
>>>>>> sband,
>>>>>> nla_data(tb[NL80211_TXRATE_LEGACY]),
>>>>>> nla_len(tb[NL80211_TXRATE_LEGACY]));
>>>>>> + if (mask.control[band].legacy == 0)
>>>>>> + return -EINVAL;
>>>>>
>>>>> I don't think this is right since it would also reject an
>>>>> intentionally empty set.
>>>
>>>> This check comes into picture only when legacy rates are configured.
>>>> For intentionally empty set "if (tb[NL80211_TXRATE_LEGACY])" condition
>>>> will fail and control will not come here. I tested the same.
>>>> With this patch
>>>> "sudo iw wlan0 set bitrates mcs-5 6" executes without any error 
>>>> message.
>>>
>>> However, that means "don't change legacy settings", not "empty legacy
>>> rateset".
>>>
>>> johannes
>> Good catch.
>> I didn't think of below configuration which is to specify empty legacy
>> rateset for 2.4 band.
>> sudo iw wlan0 set bitrates legacy-2.4
>> Correct me if I am wrong.
>>
>> Anyway we need to reject invalid legacy rates and below additional check
>> will allow empty rateset
>> and block invalid rates
>> if (mask.control[band].legacy == 0 && 
>> nla_len(tb[NL80211_TXRATE_LEGACY]))
>> return -EINVAL;
>
> But then you can still say
>
> sudo iw wlan0 set bitrates legacy-2.4 1 2 3 4
>
> and have it be accepted which is wrong as well.
>
> You really should verify every single rate.
>
> johannes

rateset_to_mask function will return zero if it couldn't find any of the 
rates in the rateset
or for empty rateset.
mask.control[band].legacy is return value of rateset_to_mask, so above 
command you mentioned will
not be accepted.  I tested the same.

Regards,
Bala.





      reply	other threads:[~2012-04-19 14:43 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-13  6:22 [PATCH] cfg80211: Validate legacy rateset Bala Shanmugam
2012-04-16 17:31 ` Johannes Berg
2012-04-17  8:07   ` Bala Shanmugam
2012-04-17 13:59     ` Johannes Berg
2012-04-18  6:03       ` Bala Shanmugam
2012-04-18 14:25         ` Johannes Berg
2012-04-19 14:43           ` Bala Shanmugam [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4F902499.2020902@qca.qualcomm.com \
    --to=bkamatch@qca.qualcomm.com \
    --cc=johannes@sipsolutions.net \
    --cc=linux-wireless@vger.kernel.org \
    --cc=linville@tuxdriver.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.