Search Linux Wireless

Re: [PATCH] cfg80211: fix cmp_hidden_bss

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

 



On Thu, Nov 29, 2012 at 2:00 AM, Johannes Berg
<johannes@xxxxxxxxxxxxxxxx> wrote:
> On Thu, 2012-11-29 at 01:53 +0200, Eliad Peller wrote:
>> On Wed, Nov 28, 2012 at 11:44 PM, Johannes Berg
>> <johannes@xxxxxxxxxxxxxxxx> wrote:
>> > From: Johannes Berg <johannes.berg@xxxxxxxxx>
>> >
>> > The cmp_bss() comparator function uses memcmp() to
>> > compare the SSID. This means that cmp_hidden_bss()
>> > needs to similarly return a number bigger than zero
>> > (use 1) instead of -1 when ie1 is bigger than ie2,
>> > which is the case if an ie2 byte is non-zero.
>
>> > +++ b/net/wireless/scan.c
>> > @@ -472,7 +472,7 @@ static int cmp_hidden_bss(struct cfg80211_bss *a, struct cfg80211_bss *b)
>> >         /* zeroed SSID ie is another indication of a hidden bss */
>> >         for (i = 0; i < ie2[1]; i++)
>> >                 if (ie2[i + 2])
>> > -                       return -1;
>> > +                       return 1;
>> >
>> >         return 0;
>> >  }
>>
>> maybe i'm misreading it, but there is still no comparison here at all,
>> so it seems wrong as well :)
>> (practically, i guess it doesn't really matter, because if there is
>> some non-null char, this is not a hidden ssid anyway)
>
> Hmm yeah you're right, it should be
>         return ie2[i + 1] - ie1[i + 1];
>
> (or the other way around? need to sleep on that first...)
>
that's also not enough, because you ignore the previous chars.
("A" < "B" vs. "AA" > "\x00B")

i think returning memcmp() is the easiest solution, but sleeping on
that is definitely a good idea :)

Eliad.
--
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 Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux