Search Linux Wireless

Re: [PATCH] mac80211: fix tx->skb NULL pointer dereference

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

 



On Mon, Jan 16, 2012 at 2:21 PM, Johannes Berg
<johannes@xxxxxxxxxxxxxxxx> wrote:
> On Mon, 2012-01-16 at 11:43 +0200, Yoni Divinsky wrote:
>> In function ieee80211_tx_h_encrypt the var info was
>> initialized from tx->skb, since the fucntion
>> is called after the function ieee80211_tx_h_fragment
>> tx->skb is not valid anymore.
>
> Wow, that's quite a while ago, I guess nobody tests WAPI often? :-)
Who said anything about WAPI ;-)
>
>> @@ -1001,8 +1001,6 @@ ieee80211_tx_h_stats(struct ieee80211_tx_data *tx)
>>  static ieee80211_tx_result debug_noinline
>>  ieee80211_tx_h_encrypt(struct ieee80211_tx_data *tx)
>>  {
>> -     struct ieee80211_tx_info *info = IEEE80211_SKB_CB(tx->skb);
>> -
>>       if (!tx->key)
>>               return TX_CONTINUE;
>>
>> @@ -1017,13 +1015,7 @@ ieee80211_tx_h_encrypt(struct ieee80211_tx_data *tx)
>>       case WLAN_CIPHER_SUITE_AES_CMAC:
>>               return ieee80211_crypto_aes_cmac_encrypt(tx);
>>       default:
>> -             /* handle hw-only algorithm */
>> -             if (info->control.hw_key) {
>> -                     ieee80211_tx_set_protected(tx);
>> -                     return TX_CONTINUE;
>> -             }
>> -             break;
>> -
>> +             return ieee80211_crypto_default_encrypt(tx);
>
> How about
> ieee80211_require_hw_crypto() or something like that?
To be consistent with the other encryptions I think it would
be better to use something like: ieee80211_crypto_hw_encrypt(tx)

>
>> +ieee80211_tx_result
>> +ieee80211_crypto_default_encrypt(struct ieee80211_tx_data *tx)
>> +{
>> +     struct sk_buff *skb;
>> +     struct ieee80211_tx_info *info = NULL;
>> +
>> +     skb_queue_walk(&tx->skbs, skb) {
>> +             info  = IEEE80211_SKB_CB(skb);
>> +
>> +             /* handle hw-only algorithm */
>> +             if (info == NULL || !info->control.hw_key)
>> +                     return TX_DROP;
>
> info == NULL can't happen
I agree,

thanks,
Yoni
>
> johannes
>
--
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