On Wed, Jul 11, 2012 at 7:32 AM, Thomas Huehn
<thomas@xxxxxxxxxxxxxxxxxxxxxxx> wrote:
> info->control.sta may only be dereferenced during the drv_tx call otherwise
> could lead to use-after-free bugs
Don"t forget many ieee80211_sta_* functions have to be called under RCU
lock and the resulting pointer is only valid under RCU lock as well.
>
> diff --git a/drivers/net/wireless/mwl8k.c b/drivers/net/wireless/mwl8k.c
> index df6c6f1..eec5cd1 100644
> --- a/drivers/net/wireless/mwl8k.c
> +++ b/drivers/net/wireless/mwl8k.c
> @@ -1667,7 +1667,8 @@ mwl8k_txq_reclaim(struct ieee80211_hw *hw,
>
> info = IEEE80211_SKB_CB(skb);
> if (ieee80211_is_data(wh->frame_control)) {
+ rcu_read_lock();
> - sta = info->control.sta;
> + sta = ieee80211_find_sta_by_ifaddr(hw, wh->addr1,
> + wh->addr2);
> if (sta) {
> sta_info = MWL8K_STA(sta);
> BUG_ON(sta_info == NULL);
> [...]
> }
+ rcu_read_unlock();
Regards,
Chr
--
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
[Linux Kernel]
[Linux Bluetooth]
[Linux Netdev]
[Kernel Newbies]
[Share Photos]
[IDE]
[Security]
[Git]
[Netfilter]
[Bugtraq]
[Photo]
[Yosemite]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Linux ATA RAID]
[Samba]
[Video 4 Linux]
[Device Mapper]
[Linux Resources]
[Free Dating]
[M2M Wireless]