lkml.org 
[lkml]   [2011]   [Jun]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[036/146] mac80211: fix a few RCU issues
    2.6.38-stable review patch.  If anyone has any objections, please let us know.

    ------------------

    From: Johannes Berg <johannes.berg@intel.com>

    commit a3836e02ba4c50db958d32d710b226f2408623dc upstream.

    A few configuration functions correctly do
    rcu_read_lock() but don't correctly reference
    some pointers protected by RCU. Fix that.

    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    net/mac80211/cfg.c | 12 +++++++-----
    1 file changed, 7 insertions(+), 5 deletions(-)

    --- a/net/mac80211/cfg.c
    +++ b/net/mac80211/cfg.c
    @@ -228,11 +228,11 @@ static int ieee80211_get_key(struct wiph
    goto out;

    if (pairwise)
    - key = sta->ptk;
    + key = rcu_dereference(sta->ptk);
    else if (key_idx < NUM_DEFAULT_KEYS)
    - key = sta->gtk[key_idx];
    + key = rcu_dereference(sta->gtk[key_idx]);
    } else
    - key = sdata->keys[key_idx];
    + key = rcu_dereference(sdata->keys[key_idx]);

    if (!key)
    goto out;
    @@ -904,8 +904,10 @@ static int ieee80211_change_mpath(struct
    static void mpath_set_pinfo(struct mesh_path *mpath, u8 *next_hop,
    struct mpath_info *pinfo)
    {
    - if (mpath->next_hop)
    - memcpy(next_hop, mpath->next_hop->sta.addr, ETH_ALEN);
    + struct sta_info *next_hop_sta = rcu_dereference(mpath->next_hop);
    +
    + if (next_hop_sta)
    + memcpy(next_hop, next_hop_sta->sta.addr, ETH_ALEN);
    else
    memset(next_hop, 0, ETH_ALEN);




    \
     
     \ /
      Last update: 2011-06-01 10:13    [W:4.122 / U:0.040 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site