Search Linux Wireless

Re: [RFC 2/2] cfg80211: amend regulatory NULL dereference fix

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Nov 24, 2011 at 10:22 AM, Johannes Berg
<johannes@xxxxxxxxxxxxxxxx> wrote:
> On Wed, 2011-11-23 at 10:04 -0500, Luis R. Rodriguez wrote:
>> Johannes' patch for "cfg80211: fix regulatory NULL dereference"
>> broke user regulaotry hints and it did not address the fact that
>> last_request was left populated even if the previous regulatory
>> hint was stale due to the wiphy disappearing.
>>
>> Fix user reguluatory hints by only bailing out if for those
>> regulatory hints where a request_wiphy is expected. The stale last_request
>> considerations are addressed through the previous fixes on last_request
>> where we reset the last_request to a static world regdom request upon
>> reset_regdomains(). In this case though we further enhance the effect
>> by simply restoring reguluatory settings completely.
>>
>> Cc: stable@xxxxxxxxxxxxxxx
>> Cc: Johannes Berg <johannes.berg@xxxxxxxxx>
>> Signed-off-by: Luis R. Rodriguez <mcgrof@xxxxxxxxxxxxxxxx>
>> ---
>>  net/wireless/reg.c |    6 ++++--
>>  1 files changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/net/wireless/reg.c b/net/wireless/reg.c
>> index df73b96..6049050 100644
>> --- a/net/wireless/reg.c
>> +++ b/net/wireless/reg.c
>> @@ -2091,8 +2091,10 @@ static int __set_regdom(const struct ieee80211_regdomain *rd)
>>       }
>>
>>       request_wiphy = wiphy_idx_to_wiphy(last_request->wiphy_idx);
>> -     if (!request_wiphy) {
>> -             reg_set_request_processed();
>> +     if (!request_wiphy &&
>> +         (last_request->initiator == NL80211_REGDOM_SET_BY_DRIVER ||
>> +          last_request->initiator == NL80211_REGDOM_SET_BY_COUNTRY_IE)) {
>> +             schedule_delayed_work(&reg_timeout, 0);
>>               return -ENODEV;
>
> This seems OK to me, but the function is really hard to follow -- maybe
> (later) we should take some code duplication and make it easier to read
> by switching on the type of hint first?

Agreed and good idea. I'll do this on the regsim.git for the rewrite.

  Luis
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux